Java 使用JNA禁用某些PC键盘键

Java 使用JNA禁用某些PC键盘键,java,keyboard-shortcuts,jna,hotkeys,Java,Keyboard Shortcuts,Jna,Hotkeys,我正在用Java做一个软件项目。我还使用JavaFX作为它的GUI。当此软件在电脑上运行时,应锁定电脑屏幕,直到输入有效pin 我想在软件运行时禁用一些键盘键,如control、alternate和windows键 如何使用JNA执行此操作?您可以使用KeyEvent检测是否按下了目标键 如果被按下,什么也不做 它与禁用类似 更多细节 在本页中 您可以通过JNA接口检测密钥操作,但密钥仍然有效 如果不与操作系统的登录进程(称为Winlogon)集成,则无法锁定Windows桌面 在Window

我正在用Java做一个软件项目。我还使用JavaFX作为它的GUI。当此软件在电脑上运行时,应锁定电脑屏幕,直到输入有效pin

我想在软件运行时禁用一些键盘键,如control、alternate和windows键


如何使用JNA执行此操作?

您可以使用
KeyEvent
检测是否按下了目标键

如果被按下,什么也不做

它与禁用类似

更多细节


在本页中


您可以通过JNA接口检测密钥操作,但密钥仍然有效

如果不与操作系统的登录进程(称为Winlogon)集成,则无法锁定Windows桌面

在Windows Vista和更新版本中,您可以使PIN进程成为一个进程。在Windows XP中,您需要添加一个


请注意,如果没有操作系统的帮助,不可能阻止对所有OS用户界面元素的访问。如果没有其他功能,用户将始终能够使用Ctrl-Alt-Del,这是由内核直接处理的,并且不能被userland应用程序截获。

您所说的“禁用”是什么意思?你能解释一下你想做什么吗?您提到的“Windows密钥”意味着这是Windows,但从WinXP到Win10,您没有回答我问题中最重要的部分:“禁用”是什么意思?您试图达到什么效果?我尝试使用了,但出现了以下错误:不兼容的类型:指针无法在这行代码处转换为LPRAM:return lib.CallNextHookEx(hhk,nCode,wParam,info.getPointer())@在yavicsage中,您可以编写
新LPRAM(info.getPointer().getLong(0))
,而不是编写
info.getPointer()
,这将重新检查错误我不希望阻止Ctrl-Alt-Del