После перехода на .net 4.0
из 2.0
я не могу успешно запустить функцию SetWindowsHookEx
. Он всегда заканчивается Win32
ошибочным номером 1400
: "Invalid window handle"
.
Это подпись pinvoke:
[DllImport("user32.dll", SetLastError = true, EntryPoint = "SetWindowsHookExA", CharSet = CharSet.Ansi)]
public static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProcDelegate lpfn, int hModule, int dwThreadId);
Это звонок:
SetWindowsHookEx(WH_KEYBOARD_LL, HookProc, iModule, 0);
Это работало раньше. В любом случае, почему он должен возвращаться с ошибкой «Неверный дескриптор окна»?
Кстати: в Windows 7 он работает, но только если я установил iModule = 0. В XP он все равно не работает.