[C] api clavier sendmessage

Résolu/Fermé
jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 - 25 août 2009 à 07:45
jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 - 26 août 2009 à 09:13
Bonjour à tous !
je code avec les api de windows en C. Je dois utiliser la fonction sendmessage pour simuler l'appui de touche au clavier dans une fenêtre.
Mon code ressemble à :

HWND test;
char montexte[100];
montexte="bonjour";
test=FindWindow("CLIENT",0);
SetForegroundWindow(test) ;//JUSQUE LA TOUT VA BIEN :)
int i=0;
while(i<6){
SendMessage(test,WM_CHAR,montexte[i],0);
i++;
}


Résultat: tout s'affiche sauf la première lettre 'b' de bonjour :s ... je ne comprend pas
merci d'avance
A voir également:

5 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
25 août 2009 à 08:09
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendmessage?redirectedfrom=MSDN
test le retour de la fonction SendMessage pour savoir si le problème vient de là.
0
j'ai eu le meme problème il y a quelque semaine :S toujours pas résolu... Les fonctions SetFocus et SetActiveWindow ne peuvent pas être utilisée pour regler ce problème ? J'ai essayé mais sans succes ..
0
Ca a été expliqué des dizaines de fois depuis les années 90 sur le groupe Pro des apis https://www.ovh.co.uk/mail/
(notamment par les consultants Microsoft..)
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297 > Max
26 août 2009 à 08:05
bon lien ;)
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
25 août 2009 à 14:34
ton problème est un peu différent jako non ? toi tout s'affiche dès que tu appuye sur une touche. C'est un peu différent.
Je ne sais pas quelle fenêtre vous capturez, mais souvent au début d'un programme rien n'est sélectionné, et il faut alors choisir un premier champ pour entrer une action. Il est possible que le message n'est pas exactement le résultat escompté.
0
jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 8
25 août 2009 à 15:32
En faite je dois rentrer login et un mdp dans la fenetre d'un jeu video, le problème et qu'il n'y a pas de fenètre windows dedans ... J'ai un logiciel qui m'indique la liste des fenêtre avec les HWND et tout le reste (WINID ) je crois .. ce logiciel m'indoque une seule fenêtre principal et rien d'autre, j'ai essayé avec un EnumWindows et EnumChildWindow ...Je ne sais plus comment faire.
Sendmessage me retourne la meme valeur pour touts les caractères envoyés à la fenêtre sauf que le premier ne s'écrit pas dans ma fenêtre ...
merci ...
0
Comme cité, voir sur news://fr.comp.os.ms-windows.programmation, c'est le top en France pour la prog Windows (principaux consultants experts du marché français...)
0

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

Posez votre question
jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 8
26 août 2009 à 09:13
Non les liens ne m'aide pas ... je viens de taper sendmessage dans l'un ... 1 résultat :s décevant pour un "bon lien"

1 exemple serai plus aprécié
0