C ++模拟鼠标左键单击最小化程序

时间:2012-08-14 10:37:00

标签: c++ winapi simulation

我一直在搜索我遇到的这个特殊问题,我希望能够模拟鼠标左键单击我当前所附的程序。

现在,我创建了一个线程来检查数据库中是否存在某些值,当这些值返回时(我正在查找的值),我希望能够在任何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;
}

1 个答案:

答案 0 :(得分:4)

如果您想在应用程序中触发鼠标事件,请使用SendMessage功能,并且您的消息将显示在带有句柄hWnd的消息泵的窗口中。

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

您可能需要通知WM_LBUTTONUP,具体取决于您的应用程序处理鼠标事件的方式。