2013-12-08 119 views
0

我在做什麼:接收其他進程窗口(Spy ++)的消息。接收其他窗口的消息

例如:我打開新的記事本窗口:http://i.stack.imgur.com/vNg6h.png

然後我移動了鼠標在記事本窗口,該窗口將發送該消息到記事本窗口(或在主窗口的子窗口/ S) :

WM_MOUSEMOVE xPos=100,yPos=200 

我想確切地收到此消息,那麼當鼠標事件發生的事情(通過事件或while循環)(可能while循環與Application.doEvents()Threading.Thread.Sleep(1))。

我曾嘗試:

好的例子比我的解釋要好。 :)

+1

您無法在C#或VB.NET中進行此項工作。只有非託管代碼可以注入到另一個進程中。 –

回答

1

您需要的鉤子是WH_CALLWNDPROCWH_GETMESSAGE。這些需要DLL注入。您無法注入託管代碼,因此您需要使用非託管代碼進行掛接。然後您可以讓您的非託管注入DLL與您的C#應用​​程序進行通信,但是您將不得不承認您嘗試在C#中編寫鉤子代碼時失敗。

+0

謝謝,我會試試看。 – Ofir

1

你需要看看HOOK。這就是SPY ++的工作原理。 但是,.Net不是很適合這個,因爲你必須使用很多WIN32 API函數。