错误:
错误:com.sun.jna.Pointer不能转换为com.sun.jna.platform.win32.WinDef.LPARAM 错误位置:返回User32.INSTANCE.CallNextHookEx(hHook,nCode,wParam, keyInfo.getPointer());
代码:
HMODULE hMod = Kernel32.INSTANCE.GetModuleHandle(null);
HOOKPROC lpfn = new LowLevelKeyboardProc()
{
int count = 1;
public LRESULT callback(int nCode, WPARAM wParam, KBDLLHOOKSTRUCT keyInfo)
{
System.out.println("nCode =" + nCode + ", wParam =" + wParam
+ ", vkCode=" + keyInfo.vkCode);
count++;
if (count > 100)
{
quit = true;
}
return User32.INSTANCE.CallNextHookEx(hHook, nCode, wParam, keyInfo.getPointer());
}
};
答案 0 :(得分:0)
您需要从指针的值手动构建LPARAM
,如JNA KeyHook example中所示。
Pointer ptr = keyInfo.getPointer();
long peer = Pointer.nativeValue(ptr);
return User32.INSTANCE.CallNextHookEx(hHook, nCode, wParam, new LParam(peer));