SetWindowsHookEx()
でグローバルmousehotkeyを作成しようとしましたので、マウスの右ボタンを押すとコードが実行されます。私の問題は、コールバック関数が実行されると、コードが実行されるたびに変更され続ける右ボタンのために私に奇妙な番号が与えられることです。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にを読んだとき、それは毎回コードは、それは0x2のあるべきにもかかわらず実行されます600および変更の周りの数のように私を与えます。 これを修正するにはどうすればよいですか?
EDIT:それは私がキー
/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
これはどのようなフックですか?キーボードやマウスのフックですか?どのようにそれをインストールしていますか? –