2017-10-15 63 views
0

我試圖做一個全球mousehotkey與SetWindowsHookEx()因此,當我按下鼠標右鍵它執行一些代碼。我的問題是,當回調函數被執行時,它會給我一個奇怪的右鍵按鈕,每次代碼執行時都會改變它。SetWindowsHookEx無法正常工作

private static IntPtr ButtonHookCallback(int nCode, IntPtr wParam, IntPtr lParam) 
    { 

     int button = Marshal.ReadInt32(lParam); 
     if (nCode >= 0 && wParam == (IntPtr)WM_RBUTTONDOWN) 
     { 
      if (button == 0x02) 
      { 
       _m.rtbLog.AppendText("Test"); 
      } 

     } 

     return CallNextHookEx(MainWindow._hookId, nCode, wParam, lParam); 
    } 

當我讀到的lParam它給了我像大約600種變化,每次的代碼獲取即使它應該是0X2執行的數量。 我該如何解決這個問題:P。

編輯:當我用鑰匙

+0

按照[文檔】(https://msdn.microsoft.com/en-us/library /windows/desktop/ms644986(v=vs.85).aspx)'lParam'包含一個指向'MSLLHOOKSTRUCT'結構的指針。 [此結構](https://msdn.microsoft.com/en-us/library/windows/desktop/ms644970(v = vs.85).aspx)基本上包含鼠標光標的x和y座標。爲什麼它應該是'0x2'? – haindl

+0

這是什麼樣的鉤子?鍵盤或鼠標掛鉤?你如何安裝它? –

回答