【发布时间】:2009-10-25 16:08:50
【问题描述】:
认识到可能需要一些互操作,如何将鼠标单击事件发送到当前未显示的窗口?我有一个应用程序作为服务运行并摆弄隐藏的窗口,需要向其中一个发送鼠标单击事件,即使它实际上不能显示窗口。
我会这样做的正常方法是简单地将点击发送到适当位置的屏幕,但显然这种方法在这种情况下不起作用。想法?
【问题讨论】:
认识到可能需要一些互操作,如何将鼠标单击事件发送到当前未显示的窗口?我有一个应用程序作为服务运行并摆弄隐藏的窗口,需要向其中一个发送鼠标单击事件,即使它实际上不能显示窗口。
我会这样做的正常方法是简单地将点击发送到适当位置的屏幕,但显然这种方法在这种情况下不起作用。想法?
【问题讨论】:
如果你能得到窗口的 HWND,那就很容易了。 使用 PostMessage() 和 WM_LBUTTONDOWN 进行左键单击。
示例:点击位置 10,10(未测试,C)
HWND hWnd = (hwnd of window)
WORD mouseX = 10;
WORD mouseY = 10;
PostMessage(hWnd,WM_LBUTTONDOWN,0,MAKELPARAM(mouseX,mouseY));
【讨论】:
使用 Spy++ 找出在窗口显示时将哪些 Windows 消息发送到窗口,然后用鼠标物理单击它,然后使用 SendMessage 直接发送这些消息。
【讨论】: