2009-10-25 75 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

不錯,我會給它一個去,謝謝 –