1

私は AutoHotkey を初めて使用し、プログラミングの経験もありません。そのため、多くの人にとって非常にありふれた質問かもしれないことをお尋ねして申し訳ありません。私の AutoHotkey の主な用途の 1 つは、AutoHotkey ListBox から保持しているレコードのデータを完成させることです。他のフォーラムの質問への返信を使用して、次のような作業スクリプトがあります。

:*:\lb::
Gui, Add, ListBox, h100 vLB, apple||bannana|cantaloup|kiwi|orange|pomegranate|strawberry
Gui, Add, Button, Default, Input
Gui, Show
return

ButtonInput:
Gui, Submit
SendInput, %LB%
Gui, Destroy
Return

上記の「Gui, Submit」の後に「,NoHide」を入れたかったのですが、そうするとスクリプトが動かなくなります。ホットストリングを 1 回だけ使用して ListBox を起動し、それをデスクトップに保持する方法はありますか?他の項目を選択して、別のエントリを選択する必要がある場所を保持しているレコード内の他の場所に移動することができます。リストボックスから?スクリプトから「Gui, Destroy」を削除すると、スクリプトも機能しなくなるため、解決策にはなりません。助けていただける方、よろしくお願いします。

4

1 に答える 1

0

この変更されたスクリプトをテストしたところ、開始すると、閉じるまでトップにとどまります。それがあなたが望んでいたことを願っています。Gui を閉じると、AHK スクリプトも閉じます。

SetTitleMatchMode, 2

;:*:\lb::
Gui, Add, ListBox, h100 vLB, apple||bannana|cantaloup|kiwi|orange|pomegranate|strawberry
Gui, Add, Button, Default, Input
Gui, +AlwaysOnTop
Gui, Show
return

ButtonInput:
Gui, Submit, NoHide
;MsgBox, %LB%
ControlSend,, %LB%, Part of your App title in the windows bar OR ahk_class ABCD (via AHK Windows Spy)
Return

GuiClose:
GuiEscape:
Gui, Destroy
ExitApp

アップデート:

仕方がありませんでしたが、さらに機能を追加する必要がありました。項目をダブルクリックすると、自動的に次のセルに移動します。

#SingleInstance Force
#installKeybdHook
#Persistent

Gui, Add, ListBox, h100 vMyListBox gMyListBox, apple|bannana|cantaloup|kiwi|orange|pomegranate|strawberry
Gui, Add, Button, Default, Input
Gui, +AlwaysOnTop
Gui, Show
return

MyListBox:
if A_GuiControlEvent <> DoubleClick
    return
GuiControlGet, MyListBox  ; Retrieve the ListBox's current selection.
Send, !{Esc}
Sleep, 200
SendInput, %MyListBox%{Tab}
return

ButtonInput:
Gui, Submit, NoHide
Send, !{Esc}
Sleep, 200
SendInput, %MyListBox%{Tab}
Return

GuiClose:
GuiEscape:
Gui, Destroy
ExitApp
于 2013-03-16T16:08:00.207 に答える