SetWindowsHookEx error with error 1428

I am trying to connect to the start button using the following code.

// Create an instance of HookProc. StartHookProcedure = new CallBack(StartHookProc); IntPtr desktop = FindWindowEx( IntPtr.Zero, IntPtr.Zero, "Progman", null); uint procId = 0; uint threadId = GetWindowThreadProcessId(desktop, out procId); Process process = Process.GetCurrentProcess(); ProcessModule module = process.MainModule; IntPtr hModule = GetModuleHandle(null); // get my module handle... //IntPtr start = FindWindowEx(desktop, IntPtr.Zero, "Button", null); hHook = SetWindowsHookEx(WH_GETMESSAGE, StartHookProcedure, hModule, (int)threadId); //If the SetWindowsHookEx function fails. if (hHook == 0) { int err = Marshal.GetLastWin32Error(); MessageBox.Show("SetWindowsHookEx Failed" + err.ToString()); return; } 

SetWindowHookEx always starts in error 1428 ERROR_HOOK_NEEDS_HMOD

It is not possible to install a non-local hook without a module handle.

I do not understand this. It fails even though I call GetModuleHandle(null) .

+4
source share

Source: https://habr.com/ru/post/1433445/


All Articles