【问题标题】:how to use an illegal character in AHK if InStr如果 InStr,如何在 AHK 中使用非法字符
【发布时间】:2014-11-01 20:27:51
【问题描述】:

我正在使用 GuiControl 捕获用户热键选择,然后将热键保存到 ini。然后我从 ini 文件中检索热键并在代码中使用它。唯一的问题是带有修饰符的热键保存为 AHK 速记,例如 ^ 用于控制,当我尝试在这样的脚本中使用它时:

key = ^2
controlSend, ,%key%, ahk_id %id%

游戏实际上只会收到“2”。所以我写了一个函数来删除 ^ 并分别替换为 {LControl Down} 和 {LControl Up} 。但是它不起作用,因为下面的代码在第二行“IfInString,^,输入”中抛出了非法字符错误,但我也认为它会在第 4 行。

convertModifier(input) {
    IfInString, ^, input
    {
        output := {LControl Down} . SubStr(input, InStr(input, ^)+1) . {LControl Up}
        return output
    }
}

我尝试使用 ` 和 \ 来逃避 ^ 但没有运气。有人有什么想法吗?

非常感谢您的宝贵时间。

【问题讨论】:

  • 你需要翻转你的参数,它是IfInString, input, ^

标签: autohotkey


【解决方案1】:

所以 Sidola 是正确的,我的 IfInString 中的针和堆叠方式错误。解决了一些其他错误后,这个解决方案开始像梦一样工作。

谢谢西多拉。

【讨论】:

    猜你喜欢
    • 2017-02-05
    • 1970-01-01
    • 2015-04-24
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多