javacom。太阳jna。无法将指针强制转换为com。太阳jna。站台win32。温迪夫。LPARAM
错误:
error:com.sun.jna.Pointer connot be cast to com.sun.jna.platform.win32.WinDef.LPARAM error location:return 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());
}
};
# 1 楼答案
您需要根据指针的值手动构造
LPARAM
,如JNAKeyHook example中所示