convertir HIWORD & LOWORD en un lparam

Le
pipo
Bonjour,
Je sais qu'il existe une fonction pour obtenir le HIWORD et LOWORD d'un
lparm.
Mais à l'inverse existe t il une fonction pour construire un lparam à partir
d'un HIWORD et LOWORD.
Je me demande cela afin d'envoyer un message WM_LBUTTONDOWN à ma fenêtre
avec en lparam les abscisses et ordonnées que me donne Winspector.
Est ce qu'une telle manipulation marchera?
Il faut mettre 0 au wparam?

Merci pour vos réponses

PS: je suis très nul en api win32, si vous connaissez un tutorial qui
conseil pour l'envoi de message et la reconnaissance de fenêtre (je fouine
sur msdn mais il faut que je tombe par hazard sur les bonens fonctions).
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christian ASTOR
Le #16436661
pipo wrote:

Je sais qu'il existe une fonction pour obtenir le HIWORD et LOWORD d'un
lparm.
Mais à l'inverse existe t il une fonction pour construire un lparam à partir
d'un HIWORD et LOWORD.



MAKELPARAM()

Je me demande cela afin d'envoyer un message WM_LBUTTONDOWN à ma fenêtre
avec en lparam les abscisses et ordonnées que me donne Winspector.
Est ce qu'une telle manipulation marchera?
Il faut mettre 0 au wparam?



WM_LBUTTONDOWN + WM_LBUTTONUP et wParam = MK_LBUTTON marche, mais la
façon standard est mouse_event() ou SendInput()
pipo
Le #16442241
>> Je me demande cela afin d'envoyer un message WM_LBUTTONDOWN à ma fenêtre
avec en lparam les abscisses et ordonnées que me donne Winspector.
Est ce qu'une telle manipulation marchera?
Il faut mettre 0 au wparam?



WM_LBUTTONDOWN + WM_LBUTTONUP et wParam = MK_LBUTTON marche, mais la
façon standard est mouse_event() ou SendInput()




Quelque chose m'échappe, j'ai écri ce code pour appuyer sur la tête jaune de
bonhomme du démineur (afin de m'entrainer...) :



#include #include #include
int main()
{
HWND demineur;
LPARAM lpara;
demineur=FindWindow("Démineur",NULL);
printf("%d",demineur);
lpara=MAKELPARAM(95,28);
printf("n 0x%X",lpara);
SetForegroundWindow(demineur);
PostMessage(demineur,WM_LBUTTONDOWN,MK_LBUTTON,lpara);
PostMessage(demineur,WM_LBUTTONUP,0,lpara);
Sleep(10000);
}


Mes paramètres utilisés sont ceux obtenus grâce à Winspector et lorsque
j'éxécute ce code j'obtiens EXACTEMENT les mêmes messages
(WM_LBUTTONDOWN/UP) que ceux obtenus lorsque je le fais manuellement... et
pourtant le clique n'est pas bien fait : le bouton à la fin de mon programme
(durant le sleep) reste dans la position enfoncée et ne semble pas être
relaché!!!Par conséquent le clique n'est pas valide ce qui ne m'arrange pas
trop .

D'ou provient la faute? (je compile avec dev c++, j'ai testé de mettre
plusieurs fois mes messages sans succés...)

Merci pour votre patience
Christian ASTOR
Le #16444261
pipo wrote:

Quelque chose m'échappe, j'ai écri ce code pour appuyer sur la tête jaune de
bonhomme du démineur (afin de m'entrainer...) :



Le démineur teste également WM_MOUSEMOVE pour savoir si le curseur est
sur le bonhomme, donc dans ce cas, pas possible => mouse_event()
Publicité
Poster une réponse
Anonyme