【发布时间】:2011-04-19 19:09:04
【问题描述】:
由于从2.0 移动到.net 4.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 上它无论如何都不起作用。
【问题讨论】: