0

AutoHotkey スクリプトを作成しているときに、次の問題が発生しました。リストボックスをナビゲートする必要があります(下方向への1ポジション)。現在選択されている行が表示されているリストボックス領域の一番下の行である場合、選択が最後の行の上にある場合よりもナビゲーションに時間がかかります。この動作を説明するビデオがあります。編集:私が理解しているように、リストボックスを再描画するための余分な時間があります)

次のスクリプトは、選択したボトムラインでは機能しません。

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

したがって、Sleep, 2002 行目以降に挿入できます。ただし、もっとエレガントな解決策があるかもしれません。そのような解決策が存在する場合は、それを説明してください。

4

1 に答える 1

1

あなたが話している動作を再現することはできません。

Sleep コマンドを 1 つ追加するだけで問題が解決する場合は、まったく無駄なことはありません。
さまざまなアプリケーションでスムーズに動作するために送信コマンドを使用する場合、スリープが必要になることがよくあります。これは、アプリケーションが処理するように設計されているよりも速く、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
于 2012-03-31T22:22:26.390 に答える