如果在InStr中如何在AHK中使用非法字符

时间:2014-10-31 17:08:08

标签: autohotkey

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

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

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

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

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

非常感谢您提前感谢。

1 个答案:

答案 0 :(得分:0)

所以Sidola是正确的,我的针头和错误的方法在我的IfInString中堆叠。随着一些其他错误的解决,这个解决方案开始像梦一样。

谢谢Sidola。