在制作AutoHotkey脚本时,我遇到了以下问题。我需要导航列表框(一个位置向下方向)。如果当前选定的行是可见列表框区域的底线,则导航将比选择位于最后一行之上的时间更长。这种行为有一个说明video。 ( 编辑: 根据我的理解,有一个额外的时间重绘列表框)
以下脚本不适用于所选的底线。
Send, {tab} ; Set focus to ListBox
Send, {down} ; Navigate Listbox
Send, {enter} ; Submit selection
所以,我可以在第二行之后插入Sleep, 200
。但是,可能有更优雅的解决方案。如果存在这样的解决方案,请向我描述。
答案 0 :(得分:1)
我无法重现您正在谈论的行为。
如果让一切顺利的话,添加一个Sleep命令确实没有任何不雅之处 在各种应用程序中使用“发送”命令使事物顺利工作时,经常需要休眠。这是因为Send命令有时会发送人工击键的速度比应用程序设计要处理的速度快。我需要编写如下脚本:
Send, {x down}
Sleep, 50
Send, {x up}
使其在多个应用程序中工作,以模拟印刷机的持续时间
当然有SetKeyDelay
但是你没有那么好的控制权。
另一种选择是使用GuiControl
来选择内容
这是一个粗略的例子:
Gui, Add, DropDownList, vColorChoice, Black|White|Red|Green|Blue
Gui, Add, ListBox, vChoice Choose1 AltSubmit h120, Red|Green|Blue|Black|White
Gui, Show, h156
loop 4
{
Gui, Submit, nohide
sleep, 1000
GuiControl, Choose, Choice, % Choice + 1
Send, {enter}{tab}
} Return
这是一个演示,而不是一个实用的脚本。 要选择具体的东西,它将如下所示:
GuiControl, Choose, Choice, 3