如何使用 AutoHotkey 交换冒号键和斜杠键?

问题描述

搜索了几个小时,但找不到将 : 与它的移位键 / 交换的方法。我是 AutotHotkey 的新手。有人可以帮我吗?

colon key with slash (shifted)

解决方法

从评论中回答更新的问题:

布局是法式AZERTY。布局有一个 : 键,如果它被移动,它会发送 /。这些应该交换,所以不移位会发送 /,而移位会发送 :

所以诀窍是在检测到其他密钥时发送另一个密钥。像这样:

#UseHook

:::SendInput,/
/::SendInput,:

使用键盘钩子 #UseHook(docs) 对于使热键不会相互触发很重要。
通常,这可以使用 $(docs) 前缀完成,但由于语法错误,$::: 会作为语法错误出现。

另外,为什么不能使用简单的重映射语法?

:::/
/:::

这是因为重映射语法使用了盲发送模式(docs),这会导致 shift 修饰符通过,并且您最终总是得到键的 shift 变体。

从技术上讲,您可以像这样为第一个热键使用重映射语法:

:::/
/::SendInput,:

这也不需要您使用键盘钩子,因为在重新映射语法中使用了 DownR(docs)

,

由于我们这里不能使用典型的重映射序列(即 ::),我们可以改为使用 Hotkey command 来检测何时按下冒号,然后将其重映射到 {{3} }

Hotkey,:,ColonDetected
return

ColonDetected:
Send,/

根据 AHK 论坛中的 label 回答:this post

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...