Salut,
Malgré toutes les infos que j'ai trouvé ici et là, des choses me
manquent pour utiliser correctement SendMessage(..) de user32.dll.
Depuis mon programme en C#, je souhaite "simuler" la pression de la
touche F5 vers une application externe dont je réussi à identifier le
handle. Voilà où j'en suis au niveau de mon source.... J'ai bon ?? lol
using System;
using System.Runtime.InteropServices;
using ...;
[...]
[DllImport("user32.dll", EntryPoint="FindWindowEx")]
public static extern int FindWindowEx (
int
hwndParent, int hwndEnfant, int
lpClasse, string lpTitre);
[DllImport("user32.dll", EntryPoint="SendMessage")]
public static extern int SendMessage (
int hwnd, uint wMsg, int wParam, int lParam);
[...]
//code du bouton suivant qui simule une pression de la touche F5 sur la
fenetre dont le titre est "UNLOAD.SQL - SQLTalk for Windows"
void B_SuivantClick(object sender, System.EventArgs e)
{
int hwnd = FindWindowEx(0, 0, 0, "UNLOAD.SQL - SQLTalk for Windows");
if (hwnd != 0) {
rtb_etapes.Text += hwnd.ToString();
SendMessage(hwnd, WM_KEYDOWN,VK_F5, 0);
System.Threading.Thread.Sleep(100);
SendMessage(hwnd, WM_KEYUP,VK_F5, 0);
}
}
=> Le problème est tout simple : Quelles sont les valeurs que
doivent prendre "WM_KEYDOWN" et de "VK_F5" pour que SendMessage
puisse fonctionner ?
Ps : J'ai vu que "Coq" a réussi a trouvé la valeur de WM_LBUTTONDOWN (=
0x0201) pour simuler la pression clic_gauche avec la souris - je ne
sais pas comment il a fait
Un petit coups de pouce serait vraiment sympa

!