Simuler une entrée au clavier

HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 - 12 août 2003 à 14:34
Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012 - 17 juil. 2004 à 09:43
Salut,
est-il possible (et si oui comment) de faire croire à un programme que quelqu'un tape sur une touche? Un exemple pour fixé les idées : un programme en C lance une application qui attend l'appui sur la touche entée. Je souhaiterai que le programme ayant lancé l'application le face ou du moins lui face croire qu'un utilisateur à appuyer sur entrée....
Merci

26 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
13 août 2003 à 14:16
Salut,
Avec FindWindow(...)
Il faut connaitre soit le nom de la classe du prog, soit le titre de la fenetre, soit les 2.
0
cs_laurentl2000 Messages postés 33 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 9 novembre 2003
29 août 2003 à 11:25
Bonjour,

Voici le code que j'ai écrit à titre d'exemple pour le Bloc-notes, il devrait insérer la chaine "TEXT" dans l'Edit de celui-ci...

HWND hparent = FindWindow("Notepad", 0);
HWND hfille = GetDlgItem(hparent, 15);
SetForegroundWindow(hfille);
PostMessage(hfille, WM_SETTEXT, 0, (long) "TEXT");

Je pense que je ne dois pas être loin, mais voilà, ça ne fonctionne pas...

Quelqu'un peut-il m'aider ?

Merci.
0
cs_laurentl2000 Messages postés 33 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 9 novembre 2003
29 août 2003 à 11:36
No problem avec un WM_KEYDOWN, ça fonctionne impec, merci pour votre discuss... lol

Un exemple concret, toujours pour le Bloc-notes :

HWND hparent = FindWindow("Notepad", 0);
HWND hfille = GetDlgItem(hparent, 15);
SetForegroundWindow(hfille);
PostMessage(hfille, WM_KEYDOWN, VK_RETURN, 0);

Encore merci.
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 août 2003 à 11:51
Salut,
Je pense que c'est le PostMessage qui va pas.

hNote = FindWindow("Notepad", 0);
hEdit = GetDlgItem(hNote, 0x0000000F);
SendMessage(hEdit, WM_SETTEXT, 0, (long) "coucou");

ca ca marche.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_laurentl2000 Messages postés 33 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 9 novembre 2003
29 août 2003 à 12:02
Merci ! :)
0
Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012
17 juil. 2004 à 09:43
Salut a tous,
J'ai un peu le meme genre de probleme je suis en C++ mais je travail avec la console je ne fais as les fenetres et j'aimerais simuler un alt+enter pour que la consoel passe en full-screen au debut du prog j'ai ecrit cette fonctin la touche alt est bien simuler mais on dirait que enter ne marche pas
merci de m'aider pck ca fait longtemps que je cherche et j'en ai marre :'(

int simul_key()
{
INPUT touche_alt00, touche_alt01, touche_enter00, touche_enter01;
KEYBDINPUT touche_alt10, touche_alt11, touche_enter10, touche_enter11;

touche_alt10.wVk = VK_MENU;
touche_alt10.wScan = 0;
touche_alt10.dwFlags = 0;
touche_alt10.time = 0;
touche_alt10.dwExtraInfo = 0;
touche_alt00.type = INPUT_KEYBOARD;
touche_alt00.ki = touche_alt10;

touche_enter10.wVk = VK_RETURN;
touche_enter10.wScan = 0;
touche_enter10.dwFlags = 0;
touche_enter10.time = 0;
touche_enter10.dwExtraInfo = 0;
touche_enter00.type = INPUT_KEYBOARD;
touche_enter00.ki = touche_enter10;

touche_alt11.wVk = VK_MENU;
touche_alt11.wScan = 0;
touche_alt11.dwFlags = KEYEVENTF_KEYUP;
touche_alt11.time = 0;
touche_alt11.dwExtraInfo = 0;
touche_alt01.type = INPUT_KEYBOARD;
touche_alt01.ki = touche_alt11;

touche_enter11.wVk = VK_RETURN;
touche_enter11.wScan = 0;
touche_enter11.dwFlags = KEYEVENTF_KEYUP;
touche_enter11.time = 0;
touche_enter11.dwExtraInfo = 0;
touche_enter01.type = INPUT_KEYBOARD;
touche_enter01.ki = touche_enter11;

SendInput(1, &touche_alt00, sizeof(touche_alt00));
SendInput(1, &touche_enter00, sizeof(touche_enter00));
SendInput(1, &touche_enter01, sizeof(touche_enter01));
SendInput(1, &touche_alt01, sizeof(touche_alt01));

return EXIT_SUCCESS;
}
0
Rejoignez-nous