Autohotkey, Como criar lista suspensa para selecionar itens

2

Eu tenho poucas hotstrings / hotkeys curtas. Se eu digitar "um", há uma ação correspondente, se eu digitei dois, há outras ações correspondentes.

A minha pergunta é, como posso fazer uma única tecla de atalho para todos, que quando eu pressiono uma tecla, uma lista suspensa / msgbox irá aparecer, então eu posso escolher um item, e ao clicar nele, ele irá executar o macro correspondente com base na lista abaixo?

::one::

{

    do this

    do that

}

return

::two::

{

    do this

    do that

}

return

::three::

{

    do this

    do that

}

return

::four::

{

    do this

    do that

}

return

::five::

{

    do this

    do that

}

return

Além disso, Autohotkey é bom para aprender scripts? Ou AutoIT? Ou eu deveria aprender uma linguagem de script importante (como as que eu geralmente ouço - Perl, PhP, etc.)

Nós somos a linguagem de programação capaz de fazer passos simples, como gravar apenas o pressionamento do teclado e os movimentos do mouse?

Obrigado,

Faye

    
por Faye 26.10.2017 / 14:29

1 resposta

1

Exemplo AHK:

; create the gui:
Gui, +AlwaysOnTop
; DropDownList:
; Gui, Add, DDL, gAction vChoise Choose1 w200, one|two|three|four
; ListBox:
Gui, Add, ListBox, gAction vChoise w200 h60, one|two|three|four
return

; Press F1 to show the gui:
F1::
CoordMode, Mouse, Screen
MouseMove, 40, 50, 0
Gui, Show, x0 y0, Actions
return


Action:
Gui, Submit ; or
; Gui, Submit, NoHide   ; if you don't want to hide the gui-window after an action
If (Choise = "one")
    MsgBox, 1st action 
If (Choise = "two")
    MsgBox, 2nd action
If (Choise = "three")
    MsgBox, 3rd action
If (Choise = "four")
    MsgBox, 4th action
return

GuiClose:
ExitApp

EDITAR

Se você quiser escolher uma ação usando as setas para cima / para baixo e Enter, você precisa adicionar um botão padrão ao gui

ou isto:

Gui, +AlwaysOnTop
Gui, Add, ListBox, gAction vChoise w200 h60, one|two|three|four
return

; Press F1 to show the gui:
F1:: Gui, Show, x0 y0, Actions

Action:
If ((A_GuiEvent = "DoubleClick") || (Trigger_Action))
{
    Gui, Submit
    If (Choise = "one")
        MsgBox, 1st action 
    If (Choise = "two")
        MsgBox, 2nd action
    If (Choise = "three")
        MsgBox, 3rd action
    If (Choise = "four")
        MsgBox, 4th action
}
return

#If WinActive("Actions ahk_class AutoHotkeyGUI")

    Enter::
        Trigger_Action := true
        GoSub, Action
        Trigger_Action := false
    return

#If

GuiClose:
ExitApp
    
por 27.10.2017 / 14:29