4

私が抱えているこの特定の問題について少し探していました。現在接続しているプログラムでマウスの左クリックをシミュレートできるようにしたいと考えています。

現在、特定の値についてデータベースをチェックするスレッドを作成し、それらの値 (私が探している値) が戻ってきたら、任意の x、y 座標でマウスの左クリックを送信できるようにしたいと考えています。プログラム(最小化中)。

Windows 7 でこれを行うにはどうすればよいですか? ありがとう!

編集:これが私がスレッドを呼び出す方法です...

HWND child = GetActiveWindow();
if ( child == NULL )
MessageBox(0,"Couldn't get the child hwnd!","",0);

DWORD ID;
HANDLE thread_check_game = CreateThread ( NULL , 0 , (LPTHREAD_START_ROUTINE) game_check_thread , (LPVOID)child, 0 , &ID ); CloseHandle ( game_check_thread );

その後 ...

DWORD WINAPI game_check_thread(LPVOID lpParam) {

HWND    Window;
Window = (HWND)lpParam;
// ... some other code ...
// ...
WORD mouseX = 398;
WORD mouseY = 398;


SendMessage(Window,WM_LBUTTONDOWN,MK_LBUTTON,MAKELPARAM(mouseX,mouseY));
SendMessage(Window, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(mouseX, mouseY));
Write("Sent Left Click\n");

ExitThread(0);
return 0;
}
4

1 に答える 1

4

アプリケーションでマウス イベントを発生させたい場合は、SendMessage関数を使用すると、ハンドルhWndのメッセージ ポンプを使用してメッセージがウィンドウに表示されます。

SendMessage(hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(mousePosX, mousePosY));

WM_LBUTTONUPアプリケーションがマウス イベントを処理する方法によっては、 の通知が必要になる場合があります。

于 2012-08-14T10:53:53.703 に答える