自身程序如何后台模拟鼠标点击
发布网友
发布时间:2022-04-22 16:33
我来回答
共1个回答
热心网友
时间:2023-07-13 14:31
用SendMessage 或者PostMessage 2者的区别在与PostMessage 不需要等待返回LRESULT SendMessage(
HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); BOOL PostMessage(
HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); 第一个参数hWnd 用 FindWindow 获取HWND FindWindow(
LPCTSTR lpClassName, LPCTSTR lpWindowName ); lpClassName//窗体类名lpWindowName//窗体标题一般情况下使用窗体标题就可以 窗体类名可以置为NULL 第二个参数Msg 即为要发送的消息比如要按下鼠标左键 那此参数为WM_LBUTTONDOWN 第三第四个参数为附加参数 接下来给你举个具体的例子HWND hMyApp =::FindWindow(NULL,L"窗体标题")::PostMessage(hMyApp,LBUTTONDOWN,MK_LBUTTON,MAKELPARAM(x坐标,y坐标));::Sleep(10);::PostMessage(hMyApp,LBUTTONUP,0,MAKELPARAM(x坐标,y坐标)); 以上代码就是实现在窗体上 X坐标,Y坐标 上左键单击一次的代码(单击 即为按下 和弹起)X坐标,Y坐标 从窗体左上角(包括标题栏)开始算起 坐标可以用 QQ截图进行粗略获取,当然也可以使用SPY++ 记录消息获取窗体标题及窗体类名同样使用SPY++进行获取SendMessage 用法是一样的 因为采用的是发送消息的方式所以当然可以实现后台模拟鼠标点击