Bonjour, je pense que le sujet interressera beaucoup de monde ...
Quelqu'un connait il un moyen de générer des commandes clavier à destination
d'une application précise ( en connaissant son handle par exemple) et non
pas à la fenêtre qui a le focus comme le fait la fonction SendKeys.
Actuellement, j'utilise plusieurs API windows pour :
1) recupérer le handle de l'application cîble
2) donner le focus à cette application
Puis j'utilise SendKeys pour envoyer mes commandes (je déclenche des
commandes du menu de cette appli)
Ce mécanisme n'est pas du tout sûr, car il y à un tas de raison pour que
l'application cîble perde le focus et que les frappes clavier générer par
SendKeys aboutissent vers une autre application.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Picalausa François
Hello,
En fonction des cas, le message WM_SETTEXT (ou SetWindowsText) peut être utilisé. (par exemple, sur un contrôle "Edit", ça marche) Sinon, par WM_CHAR et/ou WM_KEYUP, WM_KEYDOWN.
-- Picalausa François "JEROME BUNEL" a écrit dans le message de news: 431afbff$0$2315$
Puis j'utilise SendKeys pour envoyer mes commandes (je déclenche des commandes du menu de cette appli) Ce mécanisme n'est pas du tout sûr, car il y à un tas de raison pour que l'application cîble perde le focus et que les frappes clavier générer par SendKeys aboutissent vers une autre application.
Hello,
En fonction des cas, le message WM_SETTEXT (ou SetWindowsText) peut être
utilisé. (par exemple, sur un contrôle "Edit", ça marche)
Sinon, par WM_CHAR et/ou WM_KEYUP, WM_KEYDOWN.
--
Picalausa François
"JEROME BUNEL" <jer.bunel@free.fr> a écrit dans le message de news:
431afbff$0$2315$626a14ce@news.free.fr...
Puis j'utilise SendKeys pour envoyer mes commandes (je déclenche des
commandes du menu de cette appli)
Ce mécanisme n'est pas du tout sûr, car il y à un tas de raison pour que
l'application cîble perde le focus et que les frappes clavier générer par
SendKeys aboutissent vers une autre application.
En fonction des cas, le message WM_SETTEXT (ou SetWindowsText) peut être utilisé. (par exemple, sur un contrôle "Edit", ça marche) Sinon, par WM_CHAR et/ou WM_KEYUP, WM_KEYDOWN.
-- Picalausa François "JEROME BUNEL" a écrit dans le message de news: 431afbff$0$2315$
Puis j'utilise SendKeys pour envoyer mes commandes (je déclenche des commandes du menu de cette appli) Ce mécanisme n'est pas du tout sûr, car il y à un tas de raison pour que l'application cîble perde le focus et que les frappes clavier générer par SendKeys aboutissent vers une autre application.
BUNEL Jérôme
stp aurais tu un example d'utilisation des ces api car je comprends pas du tout comment ca marche. Dans MSDN on trouves les évenements WM_OnKeyUp, WM_OnKeyDown et WM_OnChar mais je n'ais pas trouvé ( ou pas compris ) de méthodes permettant de générer ces commandes clavier. Merci @+
"Picalausa François" a écrit dans le message de news:
Hello,
En fonction des cas, le message WM_SETTEXT (ou SetWindowsText) peut être utilisé. (par exemple, sur un contrôle "Edit", ça marche) Sinon, par WM_CHAR et/ou WM_KEYUP, WM_KEYDOWN.
-- Picalausa François "JEROME BUNEL" a écrit dans le message de news: 431afbff$0$2315$
Puis j'utilise SendKeys pour envoyer mes commandes (je déclenche des commandes du menu de cette appli) Ce mécanisme n'est pas du tout sûr, car il y à un tas de raison pour que l'application cîble perde le focus et que les frappes clavier générer par SendKeys aboutissent vers une autre application.
stp aurais tu un example d'utilisation des ces api car je comprends pas du
tout comment ca marche.
Dans MSDN on trouves les évenements WM_OnKeyUp, WM_OnKeyDown et WM_OnChar
mais je n'ais pas trouvé ( ou pas compris ) de méthodes permettant de
générer ces commandes clavier.
Merci @+
"Picalausa François" <fpicalausa@chez.com> a écrit dans le message de news:
OEGsH3VsFHA.3604@tk2msftngp13.phx.gbl...
Hello,
En fonction des cas, le message WM_SETTEXT (ou SetWindowsText) peut être
utilisé. (par exemple, sur un contrôle "Edit", ça marche)
Sinon, par WM_CHAR et/ou WM_KEYUP, WM_KEYDOWN.
--
Picalausa François
"JEROME BUNEL" <jer.bunel@free.fr> a écrit dans le message de news:
431afbff$0$2315$626a14ce@news.free.fr...
Puis j'utilise SendKeys pour envoyer mes commandes (je déclenche des
commandes du menu de cette appli)
Ce mécanisme n'est pas du tout sûr, car il y à un tas de raison pour que
l'application cîble perde le focus et que les frappes clavier générer par
SendKeys aboutissent vers une autre application.
stp aurais tu un example d'utilisation des ces api car je comprends pas du tout comment ca marche. Dans MSDN on trouves les évenements WM_OnKeyUp, WM_OnKeyDown et WM_OnChar mais je n'ais pas trouvé ( ou pas compris ) de méthodes permettant de générer ces commandes clavier. Merci @+
"Picalausa François" a écrit dans le message de news:
Hello,
En fonction des cas, le message WM_SETTEXT (ou SetWindowsText) peut être utilisé. (par exemple, sur un contrôle "Edit", ça marche) Sinon, par WM_CHAR et/ou WM_KEYUP, WM_KEYDOWN.
-- Picalausa François "JEROME BUNEL" a écrit dans le message de news: 431afbff$0$2315$
Puis j'utilise SendKeys pour envoyer mes commandes (je déclenche des commandes du menu de cette appli) Ce mécanisme n'est pas du tout sûr, car il y à un tas de raison pour que l'application cîble perde le focus et que les frappes clavier générer par SendKeys aboutissent vers une autre application.
Picalausa François
Bonjour,
Les message WM_KEYUP, WM_KEYDOWN et autres peuvent être envoyés à une fenêtre spécifique dont tu connais l'hWnd à l'aide de l'api SendMessage.
Pour trouver la fenêtre, les API FindWindow/FindWindowEx seront utiles, ainsi que l'utilitaire Spy++ (spyxx.exe), fournis avec Visual Studio ainsi qu'avec le Platform SDK.
L'envoi du message se fera, par exemple, comme ceci: SendMessage Text1.hwnd, WM_CHAR, Asc("A"), ByVal 0&
A noter toutefois que si pour une textbox un 0& sera accepté comme wParam, il n'en va pas de même pour toutes les fenêtres. La documentation indique clairement comme bien former ce type de messages : http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputmessages/wm_char.asp
-- Picalausa François
"BUNEL Jérôme" a écrit dans le message de news: 4326e15a$0$7829$
stp aurais tu un example d'utilisation des ces api car je comprends pas du tout comment ca marche. "Picalausa François" a écrit dans le message de news:
En fonction des cas, le message WM_SETTEXT (ou SetWindowsText) peut être utilisé. (par exemple, sur un contrôle "Edit", ça marche) Sinon, par WM_CHAR et/ou WM_KEYUP, WM_KEYDOWN. "JEROME BUNEL" a écrit dans le message de news: 431afbff$0$2315$
Puis j'utilise SendKeys pour envoyer mes commandes (je déclenche des commandes du menu de cette appli) Ce mécanisme n'est pas du tout sûr, car il y à un tas de raison pour que l'application cîble perde le focus et que les frappes clavier générer par SendKeys aboutissent vers une autre application.
Bonjour,
Les message WM_KEYUP, WM_KEYDOWN et autres peuvent être envoyés à une
fenêtre spécifique dont tu connais l'hWnd à l'aide de l'api SendMessage.
Pour trouver la fenêtre, les API FindWindow/FindWindowEx seront utiles,
ainsi que l'utilitaire Spy++ (spyxx.exe), fournis avec Visual Studio ainsi
qu'avec le Platform SDK.
L'envoi du message se fera, par exemple, comme ceci:
SendMessage Text1.hwnd, WM_CHAR, Asc("A"), ByVal 0&
A noter toutefois que si pour une textbox un 0& sera accepté comme wParam,
il n'en va pas de même pour toutes les fenêtres. La documentation indique
clairement comme bien former ce type de messages :
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputmessages/wm_char.asp
--
Picalausa François
"BUNEL Jérôme" <jbunel@bidon.fr> a écrit dans le message de news:
4326e15a$0$7829$8fcfb975@news.wanadoo.fr...
stp aurais tu un example d'utilisation des ces api car je comprends pas du
tout comment ca marche.
"Picalausa François" <fpicalausa@chez.com> a écrit dans le message de
news: OEGsH3VsFHA.3604@tk2msftngp13.phx.gbl...
En fonction des cas, le message WM_SETTEXT (ou SetWindowsText) peut être
utilisé. (par exemple, sur un contrôle "Edit", ça marche)
Sinon, par WM_CHAR et/ou WM_KEYUP, WM_KEYDOWN.
"JEROME BUNEL" <jer.bunel@free.fr> a écrit dans le message de news:
431afbff$0$2315$626a14ce@news.free.fr...
Puis j'utilise SendKeys pour envoyer mes commandes (je déclenche des
commandes du menu de cette appli)
Ce mécanisme n'est pas du tout sûr, car il y à un tas de raison pour que
l'application cîble perde le focus et que les frappes clavier générer
par SendKeys aboutissent vers une autre application.
Pour trouver la fenêtre, les API FindWindow/FindWindowEx seront utiles, ainsi que l'utilitaire Spy++ (spyxx.exe), fournis avec Visual Studio ainsi qu'avec le Platform SDK.
L'envoi du message se fera, par exemple, comme ceci: SendMessage Text1.hwnd, WM_CHAR, Asc("A"), ByVal 0&
A noter toutefois que si pour une textbox un 0& sera accepté comme wParam, il n'en va pas de même pour toutes les fenêtres. La documentation indique clairement comme bien former ce type de messages : http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputmessages/wm_char.asp
-- Picalausa François
"BUNEL Jérôme" a écrit dans le message de news: 4326e15a$0$7829$
stp aurais tu un example d'utilisation des ces api car je comprends pas du tout comment ca marche. "Picalausa François" a écrit dans le message de news:
En fonction des cas, le message WM_SETTEXT (ou SetWindowsText) peut être utilisé. (par exemple, sur un contrôle "Edit", ça marche) Sinon, par WM_CHAR et/ou WM_KEYUP, WM_KEYDOWN. "JEROME BUNEL" a écrit dans le message de news: 431afbff$0$2315$
Puis j'utilise SendKeys pour envoyer mes commandes (je déclenche des commandes du menu de cette appli) Ce mécanisme n'est pas du tout sûr, car il y à un tas de raison pour que l'application cîble perde le focus et que les frappes clavier générer par SendKeys aboutissent vers une autre application.