代码之家  ›  专栏  ›  技术社区  ›  suamikim

如何使用AHK发送正斜杠

  •  0
  • suamikim  · 技术社区  · 4 年前

    最简单的解释是使用代码:

    RAlt & a::{
    RAlt & s::[
    RAlt & d::]
    RAlt & f::}
    RAlt & r::/ ; Only one not working here. Pressing RAlt+r does nothing...
    RAlt & t::\
    

    除正斜杠外,所有替换件都按预期工作。

    我已经尝试了以下方法:

    • 绑定 / 到另一个热键,比如 RAlt & t ->不起作用
    • 把别的东西绑在 RAlt & r ,例如。 } ->不起作用

    -->这与热键无关 拉尔特;R ,但是用替换字符 /

    0 回复  |  直到 4 年前
        1
  •  1
  •   0x464e    4 年前

    它不起作用,因为 remapping syntax 不会释放 拉尔特 钥匙由于 internally using 这个 blind 发送模式。
    所以,它会发送生成 / 键(无论你的键盘布局是什么,对我来说都是) 阿尔特格 + + )但最重要的是 拉尔特 钥匙也会被按住。
    在我的键盘布局上,这会导致 拉尔特 + 阿尔特格 + + 哪一个 真的管用。所以我猜你不在我的键盘布局上,哈哈。

    所以,没有 拉尔特 在你输入的过程中被按住,你会想让它被释放。
    最简单的方法是使用 send commands 没有盲模式。它会自动为你释放。

    我当然会推荐 SendInput 发送模式,因为它是最可靠和最快的。
    既然你有两把钥匙( { } )在send命令中有一个特殊的含义,你可以 escape 他们( {{} {}} ),或使用 text mode (当然不是 raw mode ,因为它实际上会使您退出发送输入模式)

    此外,按照文档中的建议,不要使用 custom combination 热键语法,如果您可以通过 modifiers .
    在你的情况下,你确实可以使用修饰符:

    • >!r:: 如果你的键盘布局有 拉尔特 钥匙
    • <^>!r:: 如果你的键盘布局 阿尔特格 钥匙

    以下是您完成的脚本:
    与文本模式相反,我选择了转义模式,并假设 拉尔特 钥匙在。

    >!a::SendInput, {{}
    >!s::SendInput, [
    >!d::SendInput, ]
    >!f::SendInput, {}}
    >!r::SendInput, /
    >!t::SendInput, \
    
        2
  •  1
  •   jfrmilner    4 年前

    尝试SendRaw:与Send类似,不同的是键中的所有字符都是按字面解释和发送的。

    RAlt & a::SendRaw, {
    RAlt & s::SendRaw, [
    RAlt & d::SendRaw, ]
    RAlt & f::SendRaw, }
    RAlt & r::SendRaw, /
    RAlt & t::SendRaw, \