我在模块中使用了这个助手类:http://tinyurl.com/pb3vxw6和我有以下问题: SetWindowsHookEx总是返回零值。正如我所提到的,这个API函数没有文档化。Win CE 6.0设备仍然支持此API函数吗?我应该使用另一个API函数吗?如何用另一种方式实现键盘挂钩?
public void Start()
{
if (hHook != 0)
{
// Unhook the previouse one
this.Stop();
}
hookDeleg = new HookProc(HookProcedure);
// in hHook returned zero value
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, hookDeleg, GetModuleHandle(null), 0);
if (hHook == 0)
{ // Exception throwed
throw new SystemException("Failed acquiring of the hook.");
// May be better?
// Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
}
}
发布于 2014-02-17 08:05:38
这是程序还是DLL?您需要dll才能使键盘挂钩工作(并将键盘挂起dll)。我应该通过hInstance而不是GetModuleHandle(null)。所以当你挂起键盘窗口时,实际上调用了那个dll。
发布于 2014-02-18 08:37:43
您并不真正需要DLL,但无连接可能意味着未实现。
http://www.hjgode.de/wp/2009/12/04/hooking-the-keyboard-message-queue-in-compact-framework-code/上面的代码在几个设备上工作。
GetLastError给了什么?
https://stackoverflow.com/questions/21830832
复制相似问题