0

也许我误解了 AutoHotKey 功能的工作原理。下面是一些测试代码:

pos = InStr(123abc789, abc)
MsgBox, abc is at pos "%pos%"
Exit

MsgBox 内容如下:

abc 在 pos "InStr(123abc789, abc)"

我期望 pos 的值为 4。

现在,AutoHotKey 帮助文件指出InStr()

InStr(Haystack, Needle [, CaseSensitive = false, StartingPos = 1, Occurrence = 1]): 

返回字符串 Haystack 中出现字符串 Needle 的位置...例如,“123abc789”中“abc”的位置始终为 4。

这是怎么回事??

4

2 回答 2

2

你错过了两件事。您必须确保使用:=赋值并将字符串放在引号中。请看下面修改后的代码:

pos := InStr("123abc789", "abc") ; strings must be in quotes unless variables
MsgBox, abc is at pos "%pos%"
于 2012-12-24T03:10:44.163 回答
-1

还:

MsgBox, abc is at pos "%pos%"

不能工作,变量必须在百分号之间,不能加引号。

这将起作用:

MsgBox, abc is at pos %pos%
于 2017-11-18T05:20:52.067 回答