【问题标题】:Autohotkey - AltGr hotkey behaves differently from LAlt hotkeyAutohotkey - AltGr 热键的行为与 LAlt 热键不同
【发布时间】:2017-09-10 17:59:35
【问题描述】:

我正在尝试将 LAlt+Space 映射到 Delete 并将 AltGr+Space 映射到 Backspace,所以我做了这个脚本:

<!Space::Delete
<^>!Space::Backspace

LAlt+Space 被正确映射到 Delete,但 AltGr+Space 不能正常工作:它会删除像 Ctrl+Backspace 这样的词,而不是一次删除一个字符。

我切换了“删除”和“退格”并遇到了同样的问题:LAlt+Space 工作正常,但 AltGr+ Space 删除像 Ctrl+Delete 这样的词而不是字符。

我猜这可能与 AltGr 实际上是 Ctrl+RAlt 的事实有关,所以 Ctrl 可能在某些时候由 Backspace 或 Delete 组成?

有谁知道这可能是什么原因,以及解决方法?

【问题讨论】:

  • 尝试发送命令:&lt;^&gt;!Space:: Send {BS}
  • 成功了,谢谢!
  • 你也应该对Delete做同样的事情@重映射不会释放修饰键。
  • @user3419297 您应该将其发布为答案,因为它似乎已经解决了问题

标签: keyboard-shortcuts autohotkey


【解决方案1】:

虽然@user3419297 的回答基本正确,但建议在现代版本的 AHK 中使用 SendInput 而不是 Send。

<!Space::
SendInput, {Delete}
return

<^>!Space:: 
SendInput, {Backspace}
return

【讨论】:

  • 建议将SendMode Input放在脚本的开头,它实际上是您创建新脚本时默认模板的一部分SendMode Input ; Recommended for new scripts due to its superior speed and reliability.我不认为每次有人使用时都提到它Send 命令是必需的。您还通过将其放在没有return的新行上创建了一个问题
  • @Oleg return 很好。我习惯于避免某些人在 AHK 中使用的丑陋的衬里,但并没有把它写成复制/粘贴解决方案。事后看来,这对读者来说并不清楚。
猜你喜欢
  • 2018-05-25
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 2012-11-19
  • 2011-01-06
  • 2012-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多