有什么方法可以获取当前使用的系统级键盘快捷键的列表?


10

有什么方法可以获取当前正在使用的系统级键盘快捷键的列表,包括它们所附加的程序?

我注意到,在我的主计算机上,有些意外地超越了另一些,并且有些神秘地捆绑了某些东西。


1
@paradroid可能不是全局的。它们可以通过Windows,PC供应商制作的自定义程序,甚至可以存储在Word的normal.dot中存储(至少...我可能会缺少一些可能性)。这实际上取决于它是哪种捷径。发表更多有关正在发生的事情,也许我可以帮忙。
KCotreau

@KCotreau:这是一个普遍的问题,而不是任何具体的问题,因为我经常遇到这个问题,因为我有很多使用键盘快捷键的软件,而且我添加了自己的快捷键。例如,此刻,我一直在尝试的索引程序(Tabbles)已覆盖SecureCRT终端仿真器的连接键盘快捷方式。这很容易发现,但出乎意料。另外,我试图将ClipX的热键设置为WinKey + V,这是我通常使用的功能,但是在这台机器上已经采用了某些功能,我不知道它是什么。
paradroid 2011年

@paradroid认识了你。
KCotreau

我在@KCotreau中使用-这些根本不会存储在任何可预测的位置(或有时根本存储在触发可执行文件之外的任何位置),因此我无法考虑如何以编程方式枚举它们。应用程序可以尝试所有可能的击键组合,但是必须非常聪明才能识别每次以远程可读或有用的方式每次实际发生的情况。
井2011年

@Shinrai:但是操作系统显然知道正在使用哪些系统范围的键盘快捷键以及附加了哪些程序。
paradroid 2011年

Answers:


3

不幸的是,在Windows中没有集中的管理方式来管理或发现全局热键。当应用程序为其自身设置一个全局热键时,它只是告诉Windows,它希望根据Windows告诉它想要听到的内容来监听所有键盘事件和筛选器。

换一种说法:

  1. 您在应用程序(如Winamp)中启用全局热键
  2. Winamp告诉Windows,它希望通过Windows API侦听系统范围内的键盘事件(这是简化的,有些键盘事件仍被过滤掉与用户程序,某些应用程序必须安装过滤器以获取更多详细信息)
  3. 当发生键盘事件(按了某个键)时,Windows会向应用程序发送一条消息,提示“按下了键,这是详细信息”
  4. 然后,应用程序查看Windows给出的信息,该信息通常包括按下的键和任何修饰符(例如shift,alt,ctrl,Windows键)
  5. 根据应用程序感兴趣的内容和按下的键,应用程序将执行某些操作(例如,暂停歌曲),或者将控制权交还给Windows。即,如果按下了应用程序感兴趣的组合键,它将执行相关操作。

由于此过程,并且取决于应用程序来处理全局按键,因此您可以了解为什么对此没有中央管理或控制。

我唯一的建议可能是使用ProcMonProcess Explorer之类的工具来观察您按感兴趣的组合键时发生的活动。


0

您可以尝试使用HotKeys-它显示了快捷方式的地图,并允许您分配新的快捷方式。我不确定100%,但我认为仅限于Win+ something组合。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.