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

C++ simulate left mouse click on minimized program

本文关键字:单击 最小化 程序 模拟 鼠标 C++      更新时间:2023-10-16

我一直在寻找一些关于我遇到的这个特定问题的信息,我希望能够模拟在我当前附加的程序上的鼠标左键单击。

现在,我

创建了一个线程来检查数据库中的某些值,当这些值返回(我正在寻找的值)时,我希望能够在程序的任何 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 Clickn");
ExitThread(0);
return 0;
}
如果要

在应用程序中触发鼠标事件,请使用 SendMessage 函数,消息将出现在带有句柄 hWnd 的消息泵的窗口中。

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

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