2009-10-25 170 views
2

认识到可能需要一点互操作,我该如何将鼠标点击事件发送到当前未显示的窗口?我有一个作为服务运行的应用程序,并且隐藏窗口并且需要将鼠标点击事件发送给其中的一个,尽管它实际上不能显示窗口。如何将鼠标点击事件发送到隐藏窗口?

我会这样做的正常方式是简单地将点击发送到适当位置的屏幕上,但显然这种方法在这种情况下不起作用。想法?

回答

2

使用Spy ++找出显示窗口中显示的Windows消息,并用鼠标物理地单击它,然后使用SendMessage直接发送这些消息。

+0

好吧,间谍++有一些有用的提示在那里,我怎么访问 “SendMessage函数”? –

+0

@Nathan:看到http://www.pinvoke.net/default.aspx/user32.SendMessage – RichieHindle

+0

哦,为此欢呼 –

3

如果你能得到窗口的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)); 
+0

不错,我会给它一个去,谢谢 –