【问题标题】:Intercept / Disable System Keys in Java在 Java 中拦截/禁用系统键
【发布时间】:2010-08-03 20:04:16
【问题描述】:

有没有办法截取 Java 中的系统密钥,使事件不会传播到操作系统? Ctrl+Alt+Del 或其他与安全相关的组合无关紧要,主要问题是例如 Windows 键。

有问题的程序是一个全屏应用程序,它通过专有协议执行一些远程操作。目前我唯一的想法是通过 JNI 解决这个问题,而 Windows 的解决方案似乎很简单,我不确定 Linux 和 MAC OS X。

我更喜欢标准的解决方案,也许有一些 Java 游戏的东西。

【问题讨论】:

    标签: java key intercept


    【解决方案1】:

    Java 在操作系统 (OS) 之后处理击键,因此 Java 无法“拦截”它们。不过,您可以在 C/C++ 中编写特定于操作系统的代码,以拦截击键并使用 JNI 在 Java 中调用它。

    【讨论】:

      【解决方案2】:

      这似乎是fixed in Java 5,所以你可以试一试。显然,Java API 中的 KeyEvent 类公开了两个 Microsoft Windows 键盘特定事件 - VK_WINDOWS(用于左右键)和VK_CONTEXT_MENU(用于上下文菜单键)。

      很可能通过实现 KeyListener 来捕获这些事件,但请注意,如果您尝试单独捕获 Winkey 事件,则必须先触发操作系统的事件处理程序,然后 Java 才能处理它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-07
        • 2015-10-04
        • 2020-07-03
        • 1970-01-01
        • 2021-07-06
        • 1970-01-01
        • 2012-02-27
        • 2010-09-09
        相关资源
        最近更新 更多