public static void InstallHooks() { WndHookProcedure = new HookProc(CallWndProc); MsgHookProcedure = new HookProc(GetMsgProc); KbHookProcedure = new HookProc(KeyboardProc); KbLLHookProcedure = new HookProc(LowLevelKeyboardProc); MouseHookProcedure = new HookProc(MouseProc); MouseLLHookProcedure = new HookProc(LowLevelMouseProc); //WndProc = WinAPIs.SetWindowsHookEx(WindowsHookConstans.WH_CALLWNDPROC, WndHookProcedure, RunningDLLInstance, Thread.CurrentThread.ManagedThreadId); //if (WndProc == 0) //{ // int errorCode = Marshal.GetLastWin32Error(); // WinAPIs.UnhookWindowsHookEx(WndProc); // throw new Win32Exception(errorCode); //} //MsgProc = WinAPIs.SetWindowsHookEx(Constants.WindowsHookConstans.WH_GETMESSAGE, MsgHookProcedure, RunningDLLInstance, 0); //if (MsgProc == 0) //{ // int errorCode = Marshal.GetLastWin32Error(); // WinAPIs.UnhookWindowsHookEx(MsgProc); // throw new Win32Exception(errorCode); //} //KbProc = WinAPIs.SetWindowsHookEx(WindowsHookConstans.WH_KEYBOARD, KbHookProcedure, RunningDLLInstance, 0); //if (KbProc == 0) //{ // int errorCode = Marshal.GetLastWin32Error(); // WinAPIs.UnhookWindowsHookEx(KbProc); // throw new Win32Exception(errorCode); //} //KbLLProc = WinAPIs.SetWindowsHookEx(Constants.WindowsHookConstans.WH_KEYBOARD_LL, KbLLHookProcedure, RunningDLLInstance, 0); //if (KbLLProc == 0) //{ // int errorCode = Marshal.GetLastWin32Error(); // WinAPIs.UnhookWindowsHookEx(KbLLProc); // throw new Win32Exception(errorCode); //} //MProc = WinAPIs.SetWindowsHookEx(WindowsHookConstans.WH_MOUSE, MouseHookProcedure, RunningDLLInstance, 0); //if (MProc == 0) //{ // int errorCode = Marshal.GetLastWin32Error(); // WinAPIs.UnhookWindowsHookEx(MProc); // throw new Win32Exception(errorCode); //} MLLProc = WinAPIs.SetWindowsHookEx(Constants.WindowsHookConstans.WH_MOUSE_LL, MouseLLHookProcedure, RunningDLLInstance, 0); //MLLProc1 = (uint)WinAPIs.SetWindowsHookExNative(MouseHookProcedure, (uint)Constants.WindowsHookConstans.WH_MOUSE_LL, WinAPIs.GetCurrentThreadId()); if (MLLProc == 0) { int errorCode = Marshal.GetLastWin32Error(); WinAPIs.UnhookWindowsHookEx(MLLProc); throw new Win32Exception(errorCode); } }