Bonjour,
Je voudrais savoir si il exisait un moyen de simuler l'apuit d'une touche, dans un autre programme, grace aux fonctions présente dans window.h ou une quelquonque autre libraire.
(En espérent voir poster dans le bon forum)
Bonjour,
Je voudrais savoir si il exisait un moyen de simuler l'apuit d'une touche, dans un autre programme, grace aux fonctions présente dans window.h ou une quelquonque autre libraire.
(En espérent voir poster dans le bon forum)
Mes articles Développez | Dernier article : Raytracer en haskell
Network library : SedNL | Zenol's Blog : http://zenol.fr
N'oubliez pas de consulter la FAQ et les cours et tutoriels.
Je crois que la méthode conseillée, c'est SetForegroundWindow() + SendInput()...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
D'accord merci, je vias chercher de ce coté là et je prévien si j'ai un problème![]()
(Nb : J'avais bien poster dans le movais forum >_<)
Edit : Euh bon je suis complètement perdu ^^ Alors, j'ai crus comrpendre qu'il falais déjà capturer la fenêtre cible via FindWindow(). J'ai esseiller donc :
Mais j'obtien un pointeur null >_< (Oui j'ai pensser à ouvrir le bloque note avent)HWND hFore = FindWindow(0,(LPCWSTR)"Sans titre - Bloc-notes");
Ensuite, je n'arive pas à trouver grand chose sur les fonctions SetForegroundWindow et SendInput. J'ai seulement trouver que SetForegroundWindow passe la fenêtre au premier plan si j'ai bien comprit. Mais seulement je voudrais pouvoir simuler une touche du clavier, sans pour autant lui doner le focus![]()
Bref, si vous aviez un petit exemple ou un article qui traite du sujet sa m'aiderai beaucoup![]()
Mes articles Développez | Dernier article : Raytracer en haskell
Network library : SedNL | Zenol's Blog : http://zenol.fr
N'oubliez pas de consulter la FAQ et les cours et tutoriels.
Aie c'est compliqué à faire en plus il faut utiliser des structures ATOM je crois.
On peut utiliser FindWindow sinon tu peux avec les API déterminer les processus en exécutions et obtenir les handles.
Après avoir obtenu le handle on peut prendre effectivement envoyer des messages avec SendMessage.
Prendre FindWindowEx plutot que FindWindow
http://msdn.microsoft.com/library/de...ndwindowex.asp
An application can call this function in the following way.
FindWindowEx( NULL, NULL, MAKEINTATOM(0x8000), NULL );
Chercher une fenêtre (principale) par son titre est quelque peu aléatoire : la plupart des applications n'ont pas un texte prédéfini et constant dans leur barre de titre (sans parler des espacements).Envoyé par JC_Master
Je te conseillerais plutôt d'énumérer toutes les fenêtres principales en cours et d'analyser leurs titres afin d'identifier celle(s) qui t'intéresse(nt).
Ensuite un SetFocus() et un SendMessage()/PostMessage() (faire des essais avec WM_KEYDOWN, WM_KEYUP, WM_CHAR) sur le handle trouvé devraient faire l'affaire.
Euh bon je suis pas douer du tout en anglais donc un eut dure pour moi de comprendre les explications de msdn >_<Envoyé par mat.M
Donc, si j'ai comprit, FindWindowEx selectione une fenêtre via un code hexadécimal, mais il faut déjà trouver le code qui corespond, par exemple, au bloque note... Si je n'arive déjà pas à récupèrer un pointeur sur la fenêtre je suis pas pret d'ariver à envoiller une sucession de caractère![]()
Mes articles Développez | Dernier article : Raytracer en haskell
Network library : SedNL | Zenol's Blog : http://zenol.fr
N'oubliez pas de consulter la FAQ et les cours et tutoriels.
Partager