也许我误解了AutoHotKey功能的工作原理。这是一些测试代码:
pos = InStr(123abc789, abc)
MsgBox, abc is at pos "%pos%"
Exit
MsgBox读取:
abc at pos“InStr(123abc789,abc)”
我期待pos的值为4。
现在,AutoHotKey帮助文件说明了InStr()
:
InStr(Haystack, Needle [, CaseSensitive = false, StartingPos = 1, Occurrence = 1]):
在字符串Haystack中返回字符串Needle的出现位置...例如,“123abc789”中“abc”的位置始终为4.
怎么了?
答案 0 :(得分:2)
你缺少两件事。您必须确保使用:=
作业,并将字符串放在引号中。请参阅以下修改后的代码:
pos := InStr("123abc789", "abc") ; strings must be in quotes unless variables
MsgBox, abc is at pos "%pos%"
答案 1 :(得分:-1)
此外:
MsgBox, abc is at pos "%pos%"
不起作用,变量需要在百分号之间,没有引号。
这将有效:
MsgBox, abc is at pos %pos%