我试图遍历VarX中的列表并发送请求的击键直到列表完成。现在它似乎混乱,并没有按顺序正确运行命令。我有什么错误的想法?它应该像这样运行:
ctrl f
48306237
enter
tab tab tab tab enter
shift space
ctrl -
然后重复下一个数字......
^!G::
VarX=
(
48306237
48306642
48303423
48303612
48303797
)
loop, parse, VarX, `n,`r
{
Send, ^f
Send, %VarX%
Send, {enter}
Send, {tab}{tab}{tab}{tab}{enter}
Send, +{space}
Send, ^-
return
}
return
答案 0 :(得分:1)
首先,你不想做某事"做某事"结果呢?例如等一下,看看它是否找到了什么,然后继续按了一把钥匙?
此外,如果您想查看文本中是否包含字符串,为什么不使用:
If YourTextVariable contains %YourStringNumber%
MsgBox, Found %YourStringNumber% in the text
如果你需要使用内部"发现"函数,然后我建议使用AHK间谍查找编辑对象ID和[查找]按钮ID,并使用ControlSend发送搜索条件和ControlSend到"按下" [查找]按钮。
答案 1 :(得分:0)
ControlGetText
/ ControlSetText
/ AccViewer(MSAA:Microsoft Active Accessibility)/ COM(组件对象模型)。 Send
的程序,作为最后的方法,我经常会大量睡眠,和/或使用SetKeyDelay
来增加按键之间的暂停。另外,我会观察前10或20次迭代,以确保按键功能正常。IfWinActive
之类的安全措施来停止脚本,否则如果弹出一个随机窗口,它将收到按键。Send {Raw}%VarX%
作为预防措施发送文字,
对于由Send
特别处理的+ ^#!{}等字符。Return
,只允许进行一次迭代,你可能出于诊断原因临时做了这个,但我应该把它指向别人。