我有一个多线程应用程序,需要能够同时执行多个鼠标单击。
我有一个IntPtr intptr
需要向其发送鼠标点击的进程。我试图在网上找到这些信息,并且有一些我尝试过的例子。但我没有让他们中的任何一个工作。
据我了解,解决我的问题的正确方法是使用该功能
SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
hWnd 是进程的 IntPtr。Msg 是想要的操作,我想要左键单击,int WM_LBUTTONDBLCLK = 0x0203;
IntPtr wParam 对这个问题没有兴趣(据我了解)并且单击的坐标在 lParam 中。我构造 lParam 像,
Int32 word = MakeLParam(x, y);
private int MakeLParam(int LoWord, int HiWord)
{
return ((HiWord << 16) | (LoWord & 0xffff));
}
但正如你可能理解的那样,我无法让它工作。我的第一个问题是,坐标是在这个过程的窗口内还是绝对屏幕坐标?我的第二个问题,我做错了什么?