如何在不使用默认按钮的情况下处理{Return}键的AutoHotkey GUI?

时间:2011-08-14 22:47:57

标签: autohotkey

我正在使用AutoHotkey GUI + ListBox从各种选项中选择一个选项,但我找不到一种方法来使RETURN键关闭GUI而不创建一个带有相关ButtonOk事件的附加默认按钮。这是我使用默认按钮的代码:

Gui, +LastFound +AlwaysOnTop -Caption   
Gui, Add, ListBox, vMyListBox gMyListBox w300 r10
Gui, Add, Button, Default, OK

GuiControl,, MyListBox, Option 1
GuiControl,, MyListBox, Option 2
GuiControl,, MyListBox, Option 3

Gui, Show
return

MyListBox:
if A_GuiEvent <> DoubleClick
    return

ButtonOK:
    GuiControlGet, MyListBox
    Gui Hide
    MsgBox %MyListBox% selected!
    ExitApp

GuiClose:
GuiEscape:
ExitApp

2 个答案:

答案 0 :(得分:2)

当GUI可见时,您可以使用the Hotkey command暂时启用Return作为热键,并在gui关闭时禁用它。

答案 1 :(得分:1)

您可以监控WM_KEYDOWN消息。在自动执行部分:

OnMessage(0x100, "OnKeyDown")

然后在剧本的其他地方:

OnKeyDown(wParam)
{
    if (A_Gui = 1 && wParam = 13) ; VK_ENTER := 13
    {
        GuiControlGet, MyListBox
        Gui Hide
        MsgBox %MyListBox% selected!
        ExitApp
    }
}