导航控件(ListBox)时滞

时间:2012-03-30 10:35:02

标签: automation delay autohotkey timedelay

在制作AutoHotkey脚本时,我遇到了以下问题。我需要导航列表框(一个位置向下方向)。如果当前选定的行是可见列表框区域的底线,则导航将比选择位于最后一行之上的时间更长。这种行为有一个说明video。 ( 编辑: 根据我的理解,有一个额外的时间重绘列表框)

以下脚本不适用于所选的底线。

Send, {tab}   ; Set focus to ListBox
Send, {down}  ; Navigate Listbox
Send, {enter} ; Submit selection

所以,我可以在第二行之后插入Sleep, 200。但是,可能有更优雅的解决方案。如果存在这样的解决方案,请向我描述。

1 个答案:

答案 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