【问题标题】:How can I swap colon key and slash key using AutoHotkey?如何使用 AutoHotkey 交换冒号键和斜线键?
【发布时间】:2021-08-05 01:27:13
【问题描述】:

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

colon key with slash (shifted)

【问题讨论】:

标签: autohotkey slash colon remap


【解决方案1】:

回答来自 cmets 的更新问题:

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

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

#UseHook

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

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

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

:::/
/:::

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

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

:::/
/::SendInput, :

这也不需要您使用键盘挂钩,因为DownR(docs) 用于重新映射语法。

【讨论】:

    【解决方案2】:

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

    Hotkey, :, ColonDetected
    return
    
    ColonDetected:
    Send, /
    

    答案基于 AHK 论坛中的this posthttps://autohotkey.com/board/topic/99092-remap-colon-key-help/

    【讨论】:

    • :::/ 应该没问题。如果没有,请更新您的 AHK 安装。但是,由于this,某些键盘布局将需要使用:::SendInput, /。我的猜测是,在 OP 的键盘布局上不需要使用发送命令,但是是的。
    • @Spyre 我测试了你的代码,但它没有任何改变,我有 AHK v1.1.33.02 btw。
    • @0x464e 第一个命令不起作用。第二个命令运行良好,但我尝试将其应用于将 shift+colon 重新映射到冒号:+:::SendInput, : 它返回错误代码。
    • 等等,你的键盘布局是什么样的?你有一个: 键,如果它被移动,它会发送/?你想交换这些吗?所以不换档会发送/,换档会发送:
    • 我有一个法国 AZERTY 布局,这正是我想要做的。我已经设法将,?;. 交换,但我找不到将:/ 交换的方法。基本上是非移位键和移位键之间的交换。我使用::?C*:;::{.}:?C*:.::{;};. 交换。此方法不适用于:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多