0

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

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

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

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

4

1 回答 1

1

我无法重现您所说的行为。

如果添加一个 Sleep 命令可以使事情正常运行,那么添加一个睡眠命令确实没有什么不雅之处。
在各种应用程序中使用发送命令以使事情顺利进行时,经常需要睡眠。这是因为发送命令有时会比应用程序设计处理的速度更快地发送人工击键。我需要编写如下脚本:

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
于 2012-03-31T22:22:26.390 回答