2011-03-31 97 views
1

我想要在表單外單擊鼠標左鍵時獲得。我發現這可以用WM_LBUTTONDOWN做,但我一直在尋找了幾個小時,但還沒有找到如何得到它的工作...C# - 追蹤WM_LBUTTONDOWN表格外

在此先感謝

+0

WM_LBUTTONDOWN只發布到光標下單擊按鈕時的表單 - http://msdn.microsoft.com/en-us/library/ms645607.aspx – Blorgbeard 2011-03-31 17:37:59

+0

我認爲你需要一個全局鉤子 - http:/ /www.codeproject.com/KB/cs/globalhook.aspx – Blorgbeard 2011-03-31 17:39:10

+0

當我運行它崩潰,立即給出錯誤... 只有一個版本的作品,我會檢查源出 – John 2011-03-31 17:45:51

回答

0

是的,的確,你需要一個全局鉤子。 Blorgbeard發佈的資源確實有效,只需進行一些修改。
何時「和SetWindowsHookEx」的呼籲在HookManager.Callbacks.cs由改變參數:

Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]) 
// to this: 
IntPtr.Zero 

它會突然開始工作。想想看,我也將目標平臺從2.0改爲4.0。你可能也需要這樣做。無論如何,它就像一種魅力。

0

全局掛鉤以某種方式被刪除,您可以調用SetCapture來捕獲鼠標事件。