【问题标题】:AHK - simulating Fn key shortcutAHK - 模拟 Fn 快捷键
【发布时间】:2021-11-18 09:38:13
【问题描述】:

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

我应该放弃所有希望吗?

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

提前致谢。我完全期待坏消息。

【问题讨论】:

  • Window 没有看到 FN 键,所以是的。您将无法轻松访问该密钥。应该可以使用一些低级别的东西,比如AutoHotInterception

标签: autohotkey


【解决方案1】:

QMK有how keyboards work的好图:

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

当您按下键盘上的某个键时,键盘内的 QMK 固件会解释按键并创建一组键码,用于将 USB 线发送到操作系统的确切内容。

如果您将 QMK 固件配置为说 Key(1,1) 是字母“a”,那么无论何时您点击 Key(1,1),它都会将字母“a”(扫描码 0x04)发送到 USB 线。

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

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

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

【讨论】:

    【解决方案2】:

    我想加上我的 2 美分,说虽然您不能使用 autohotkey 执行本机 fn 键的操作,但可能有替代 ('unnatural') 途径来实现最终目标。

    例如,您可以通过(图形或可编程)软件界面触发管理 RGB 的程序。您甚至可以通过虚拟 com 端口等触发辅助微控制器(例如 arduino),然后使用该微控制器操作您的键盘电路(即延迟开机)。

    它可能看起来有点过分,但是“如果它很愚蠢但有效,那就不是愚蠢tm

    【讨论】:

      猜你喜欢
      • 2019-07-28
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多