I wrote this program in C ++ using VS2010 to determine when the user makes the double middle mouse button, switch to the next window (as Alt + Tab does) and stop the hook chain. Here is my code:
DLL:
extern "C"__declspec (dllexport) LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam) { if (nCode<0) return CallNextHookEx(NULL,nCode,wParam,lParam); if (wParam == WM_MBUTTONDBLCLK) { PostMessage(GetActiveWindow(),WM_SYSCOMMAND,SC_NEXTWINDOW,0); } else return CallNextHookEx(NULL,nCode,wParam,lParam);
EXE:
do{ nMenu = choose(); switch (nMenu) { case 1: hLib = LoadLibrary(cLibName); hProc = (HOOKPROC) GetProcAddress(hLib, "HookProc"); hHook = SetWindowsHookEx(WH_MOUSE, hProc, hLib, NULL); break; case 2: UnhookWindowsHookEx(hHook); break; case 0: ; } } while (nMenu);
I run the program and set the hook, then the program freezes and the mouse stops working in most applications (it works in Chrome though). What am I doing wrong?
source share