【发布时间】:2021-08-05 01:27:13
【问题描述】:
我搜索了几个小时,但找不到将 : 与它的移位键 / 交换的方法。我是 AutotHotkey 的新手。有人可以帮我吗?
【问题讨论】:
-
您在图片中使用的是什么键盘语言/设置?
-
我使用的是 AZERTY 法式布局。
标签: autohotkey slash colon remap
我搜索了几个小时,但找不到将 : 与它的移位键 / 交换的方法。我是 AutotHotkey 的新手。有人可以帮我吗?
【问题讨论】:
标签: autohotkey slash colon remap
回答来自 cmets 的更新问题:
布局是法国AZERTY。布局有一个
:键,如果它被移动,它会发送/。这些应该交换,所以不换档会发送/,换档会发送:。
所以诀窍是在检测到其他密钥时仅发送另一个密钥。像这样:
#UseHook
:::SendInput, /
/::SendInput, :
使用键盘钩子#UseHook(docs) 对使热键不会相互触发很重要。
通常这可以使用 $(docs) 前缀来完成,但由于语法错误,$::: 会作为语法错误出现。
另外,为什么不能使用简单的重映射语法?
:::/
/:::
这是因为重映射语法使用了盲发送模式(docs),这会导致 shift 修饰符通过,而您最终会得到 key 的 shift 变体。
从技术上讲,您可以像这样对第一个热键使用重新映射语法:
:::/
/::SendInput, :
这也不需要您使用键盘挂钩,因为DownR(docs) 用于重新映射语法。
【讨论】:
由于我们不能在这里使用典型的重映射序列(即::),我们可以改为使用Hotkey command 来检测何时按下冒号,然后将其重映射为label
Hotkey, :, ColonDetected
return
ColonDetected:
Send, /
答案基于 AHK 论坛中的this post:https://autohotkey.com/board/topic/99092-remap-colon-key-help/
【讨论】:
:::/ 应该没问题。如果没有,请更新您的 AHK 安装。但是,由于this,某些键盘布局将需要使用:::SendInput, /。我的猜测是,在 OP 的键盘布局上不需要使用发送命令,但是是的。
+:::SendInput, : 它返回错误代码。
: 键,如果它被移动,它会发送/?你想交换这些吗?所以不换档会发送/,换档会发送:?
, 与? 和; 与. 交换,但我找不到将: 与/ 交换的方法。基本上是非移位键和移位键之间的交换。我使用::?C*:;::{.} 和 :?C*:.::{;} 将 ; 与 . 交换。此方法不适用于: 和/。