【问题标题】:Disable some PC keyboard keys using JNA使用 JNA 禁用某些 PC 键盘键
【发布时间】:2016-11-06 20:36:50
【问题描述】:

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

我想在软件运行时禁用一些键盘键,例如控制键、备用键和 windows 键。

如何使用 JNA 做到这一点?

【问题讨论】:

  • “禁用”是什么意思?你能解释一下你想做什么吗?您提到“Windows 键”意味着这是 Windows,但是哪个版本?
  • 从WinXP到Win10
  • 您没有回答我问题中最重要的部分:“禁用”是什么意思?你想达到什么效果?

标签: java keyboard-shortcuts jna hotkeys


【解决方案1】:

您可以使用KeyEvent 来检测目标键是否被按下。

如果按下,什么也不做。

它只是类似于disable

更多详情how to disable keyboard hotkey in java swing


在本页is it is possible to disable the windows keys using java

您可以通过 JNA 接口检测按键动作,但按键仍然有效。

【讨论】:

  • 我尝试使用KeyHook Java class,但出现此错误:不兼容的类型:指针无法在这行代码中转换为 LPARAM:return lib.CallNextHookEx(hhk, nCode, wParam, info.getPointer ());
  • @InyavicSage 不要写info.getPointer(),你可以写new LPARAM(info.getPointer().getLong(0)),这样可以解决错误
【解决方案2】:

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

在 Windows Vista 和更新版本中,您可以将您的 PIN 处理设置为 Winlogon Credential Provider。在 Windows XP 中,您需要添加 Winlogon GINA hook

请注意,如果没有操作系统的帮助,就不可能阻止对所有操作系统用户界面元素的访问。如果不出意外,用户将始终能够使用 Ctrl-Alt-Del,它由内核直接处理,不会被用户级应用程序拦截。

【讨论】:

  • 我不想屏蔽 Ctrl-Alt-Del
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-30
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 2013-05-10
相关资源
最近更新 更多