我希望模拟鼠标左键单击另一个窗口,并按住该按钮约2秒钟。我尝试了以下代码:
int WM_LBUTTONDOWN = 0x0201;
int WM_LBUTTONUP = 0x0202;
SendMessage(hd, WM_LBUTTONDOWN, new IntPtr(1), lParam);
Thread.Sleep(2000);
SendMessage(hd, WM_LBUTTONUP, new IntPtr(1), lParam);
参数" hd"是另一个窗口的句柄和" lParam"包含坐标信息。但它并没有像我期望的那样工作。我使用断点来调试代码。当" WM_LBUTTONDOWN"消息被发送到另一个窗口,立即点击另一个窗口中的按钮,而不是等待消息" WM_LBUTTONUP"。
当我使用真正的鼠标点击并按住按钮时,spy ++显示除了" WM_MOUSEMOVE"之外没有任何其他消息。介于" WM_LBUTTONDOWN"和" WM_LBUTTONUP"。 Picture of Spy++ showed
那么,如何模拟鼠标按钮并在C#中保持?任何建议都会有所帮助,谢谢!
答案 0 :(得分:0)
答案 1 :(得分:0)
“mouse_event”API函数可以解决问题。但副作用是鼠标指针实际会移动,当程序运行时你无法移动鼠标或点击意外错误的位置。