1

我是 AutoHotkey 的新手,没有编程经验,很抱歉问你们中的许多人可能是一个非常平凡的问题。我对 AutoHotkey 的主要用途之一是完成我从 AutoHotkey 列表框保存的记录中的数据。使用对其他论坛问题的回复,我有一个工作脚本如下:

:*:\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”,但如果我这样做了,脚本就不再起作用了。有什么方法可以让我只使用一次热字串来启动 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 回答