autohotkey - AHK - 模拟 Fn 快捷键

标签 autohotkey

我想构建一个 AHK 脚本,在执行时会按 Fn + DFn + G 。 不幸的是,在检查了我启用“KeybdHook”的 AHK 脚本中的“按键历史记录”后,我的键盘的 Fn 键在按下时似乎不会触发任何按键操作。

我应该放弃所有希望吗?

不必要的上下文: 在我的 65% 键盘上,Fn + [Key] 快捷键对于替换各种缺失的按键以及更改各种键盘设置至关重要。 特别是,RGB 设置是使用 Fn + DFn + G 更改的 - 而且,烦人的是,每次我重新启动计算机时,它们都会重置为默认的、丑陋的彩虹,而不是我更喜欢更柔和的 RGB 设置。我尝试构建的脚本会在启动时自动更改这些设置(直到我的大脑足够大以理解 QMK,我的键盘的 RGB 软件)

提前致谢。我完全预料到会有坏消息。

最佳答案

QMK 有一个很好的图表 how keyboards work :

+------+         +-----+       +----------+      +----------+     +----+
| User |-------->| Key |------>| Firmware |----->| USB wire |---->| OS |
+------+         +-----+       +----------+      +----------+     +----+

当您按下键盘上的按键时,键盘内的 QMK 固件会解释按键并创建一组键码,以准确地通过 USB 线发送到操作系统。

如果您将 QMK 固件配置为 Key(1,1) 是字母“a”,则每当您点击 Key(1,1) 时,它都会通过 USB 线发送字母“a”(扫描码 0x04)。

有些按键和组合根本不会通过 USB 线发送。例如,Fn 键通常用于在虚拟“层”之间切换。这意味着,如果您进行了配置,Fn + Key(1,1) 现在可以发送字母“z”(扫描码 0x1D)。现在,当您按下 Fn + Key(1,1) 时,它将通过 USB 线发送字母“z”(扫描码 0x1D)。它不会发送 Fn 键,因为 Fn 键仅对 QMK 固件重要,与操作系统无关。

当您按下 Fn + D 键时,QMK 固件会将其解释为更改 RGB 设置。尽管您可能是 pcmasterrace 的一部分,但操作系统对 RGB 键盘和灯光一无所知。另外,USB中没有RGB扫描码HID protocol定义“更改 RGB”。因此,按 Fn + D 键不会通过 USB 向操作系统发送任何内容。

由于更改 RGB 不会发生在操作系统上,并且它仅存在于键盘内,因此 Autohotkey 无法发送正确的击键集来复制该功能。更改键盘默认设置的唯一方法是制作并刷新您自己的自定义 QMK 固件。

关于autohotkey - AHK - 模拟 Fn 快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69326252/

相关文章:

autohotkey - 如何在不定义热键的情况下使脚本自动运行?

AutoHotKey:按一个键移动到下一个程序

java - 确定Java程序的输入源

autohotkey - 如何在 AutoHotkey 中添加等待期?

winapi - 媒体播放器经典 - 以编程方式跳转到视频/音频中的点

用于将扬声器静音一定秒数的 Autohotkey 脚本

png - Aero 窗口上的 Autohotkey 透明 PNG

mysql - 自动热键关闭数据库连接

autohotkey - 如何在像热键这样的功能中使用逗号(,)?

audio - Autohotkey,SoundSet:使用功能键将音量切换到2%(Windows XP)