PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → [WD14] Exécuter une procédure après un CTRL-C dans une autre application
[WD14] Exécuter une procédure après un CTRL-C dans une autre application
Started by Eric, Oct., 19 2009 1:44 PM - 6 replies
Posted on October, 19 2009 - 1:44 PM
Bonjour,

Je voudrais, dans mon application windev, exécuter une procédure qui va lire le contenu du presse papier de windows après avoir appuyé sur les touches CTRL-C.

Je sais intercepter le code du CTRL-C avant le presse papier, mais pas après (je me suis basé sur l'exemple "WD hotkey" fournit dans Windev).

Merci pour votre aide

Eric
Posted on October, 19 2009 - 4:49 PM
Bonjour Eric

intercepte le ctrl C avant, lance un timer sur 1/4 de sec, et récupère
le presse papaier dans le code du timer

Cordialement

--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Plus d'information sur http://fabriceharari.com/index_FR.html


Eric wrote:
Bonjour,

Je voudrais, dans mon application windev, exécuter une procédure qui va lire le contenu du presse papier de windows après avoir appuyé sur les touches CTRL-C.

Je sais intercepter le code du CTRL-C avant le presse papier, mais pas après (je me suis basé sur l'exemple "WD hotkey" fournit dans Windev).

Merci pour votre aide

Eric
Posted on October, 19 2009 - 5:33 PM
Merci pour ta réponce Fabrice, mais avec les "hotkey", j'ai l'impression qu'il ne continue pas son instruction.

En fait, j'ai essayé ce que tu m'as dis dans mon programme, j'ai paramétré le "CTRL C" dans mes "hotkey", ensuite, j'ai sélectionné du texte sur une page web, et fait un "CTRL C" pour copier le texte, et quand j'ai voulu le coller, il n'y avait rien.

J'ai refais le test en ayant fermé mon programme, et la tout est revenus normal.

Je souhaite toujours garder la fonction initiale du "CTRL C" mais dès que le texte à été copié dans le presse papier, il faut que mon application en windev puisse le récupérer et faire un traitement dessus.

Merci pour vos réponse

Eric
Posted on October, 20 2009 - 9:31 AM
Salut !

On 19-Oct-2009, Eric <ericcochet@hotmail.com> wrote:

Je souhaite toujours garder la fonction initiale du "CTRL C" mais dès que
le texte à été copié dans le presse papier, il faut que mon application en
windev puisse le récupérer et faire un traitement dessus.



Et si dans un thread, tu stockais régulièrement le contenu du presse-papier
dans une variable globale der type Variant?
Si le résultat n'est pas vide, et que c'est du texte, alors, tu exécutes le
traitement approprié.

En espérant que cela puisse te servir ...

--
Marcel Berman
Président de Be-Dev.be
l'association francophone belge des utilisateurs de
WinDev, WebDev et Windev Mobile
Posted on October, 20 2009 - 6:33 PM
Salut,

c'est assez simple.
Voici comment faire

Déclaration globales dê la fenêtre:
//On enregistre la fenêtre dans la chaine de message de changement du presse
papier
//Il faut aussi conserver en mémoire la prochaine fenêtre à laquelle il
faudra passer le Message reçu
iHandleFenSuivante est un entier =
API("user32","SetClipboardViewer",Handle(MaFenêtre))
//Traitement de certains événements
Evénement("Eve_PP",MaFenêtre..Nom,WM_DRAWCLIPBOARD)
Evénement("Eve_PP",MaFenêtre..Nom,WM_CHANGECBCHAIN)


Fermeture de la fenêtre:
//On se désinscrit de la chaine de message
API("user32","ChangeClipboardChain",Handle(MaFenêtre), iHandleFenSuivante)


Fonction "Eve_PP"
Procedure Eve_PP(iMessage,iWParam,iLParam)
SELON iMessage
CAS WM_CHANGECBCHAIN:
//La chaine de message peut changer

//La fenêtre suivante de la chaine a changée, on doit récupérer le handle
de la nouvelle fenêtre suivante
SI iWParam = iHandleFenSuivante ALORS
iHandleFenSuivante = iLParam
SINON
//Le message ne s'adresse pas à nous, on passe au suivant
SendMessage(iHandleFenSuivante,iMessage,iWParam,iLParam)
FIN
CAS WM_DRAWCLIPBOARD:
//Le contenu du presse papier a changé

//Un traitement spécifique peut être réalisé
Trace(PressePapier())

//On passe l'information au suivant
SendMessage(iHandleFenSuivante,iMessage,iWParam,iLParam)
AUTRE CAS
//Aucun
FIN


Voilà ça devrait fonctionner sans problème

Mathieu

"Eric" <ericcochet@hotmail.com> a écrit dans le message de
news:01922327b83214a26e4ad2b15241f97c@news.pcsoft...

Bonjour,

Je voudrais, dans mon application windev, exécuter une procédure qui va
lire le contenu du presse papier de windows après avoir appuyé sur les
touches CTRL-C.

Je sais intercepter le code du CTRL-C avant le presse papier, mais pas
après (je me suis basé sur l'exemple "WD hotkey" fournit dans Windev).

Merci pour votre aide

Eric
Posted on October, 21 2009 - 11:30 AM
Merci Mathieu, c'est exactement ce que je cherchais :-D
Registered member
135 messages
Popularité : +8 (8 votes)
Posted on December, 12 2017 - 9:56 AM
Bonjour,

Pour ceux qui tombent sur ce post qui commence à dater, vous trouverez une classe qui permet d'être notifié lorsque le presse papier est modifié.
Le code de la classe se base largement sur le code de Mathieu Kurth dans ce post. Merci pour ce bout de code.

http://www.serviceinfo76.com/SERVICEINFO76_WEB/FR/blog_article.awp…

--
Dominique DAUSSY
http://www.serviceinfo76.com