Java能否确定是否存在全局/操作系统的键盘快捷键?

3

Java是否有办法找出在java桌面应用程序之外定义的全局访问快捷方式?

这是为了实现键盘快捷键配置UI,我们可能会警告用户他们正在覆盖操作系统快捷键,建议他们选择不同的按键。


1
你的目标操作系统是什么? - Konrad Reiche
1
我不确定任何语言如何实现这个... 如果你能找到一个回答你问题的资源,比如C++这样的本地编译语言,那么你可能可以使用像JNA这样的库来适应相同的概念。当然,这是假设你的目标是Windows。如果你试图保持多平台(当你使用Java时应该这样做),那么你可能只是运气不好。 - Alex Lynch
2个回答

1

很抱歉,由于以下原因,这是不可能的:

  • 太多不同的操作系统或桌面环境(如Linux)
  • 无法访问,因为它们不以纯文本形式存储

我认为你最好的选择是定义它们所有(或至少是非常重要的)。毕竟,快捷键列表是可用的。我还发现键盘快捷键表,因为它们提供了不同操作系统上的快捷键概述。

对于GNOME,我找到了以下问题:GNOME键盘快捷键存储在哪里?

根据您的发行版版本,键盘快捷键应用程序在GUI中可能被称为不同的名称,但在命令行中应该被称为“gnome-keybinding-properties”。事实证明,这个小巧的应用程序将所有快捷键都带到一个方便的地方供用户编辑。

此外,为您的应用程序定义快捷方式不会覆盖操作系统快捷方式,它们只是在您的应用程序中不起作用。


0

我认为这可能是不可能的,也许可以使用RunTime类运行本地命令。但是通过Java执行本地操作系统级别的命令通常不是一个好主意。

然而,显示一份常用快捷方式列表以警告用户,这些可能因其操作系统而不可用,这可能是值得的。但您可以添加一个快速测试,如果用户覆盖了一个常用快捷键,则会警告他们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接