GUISetAccelerators() as replace for HotKeySet()

Zedna
By Zedna in AutoIt Example Scripts,
original example from HelpFile: #include <GUIConstantsEx.au3> GUICreate("Custom Msgbox", 210, 80) GUICtrlCreateLabel("Please click a button!", 10, 10) $YesID = GUICtrlCreateButton("Yes", 10, 50, 50, 20) $NoID = GUICtrlCreateButton("No", 80, 50, 50, 20) $ExitID = GUICtrlCreateButton("Exit", 150, 50, 50, 20) ; Set accelerators for Ctrl+y and Ctrl+n Dim $AccelKeys[2][2]=[["^y", $YesID], ["^n", $NoID]] GUISetAccelerators($AccelKeys) GUISetState() ; display the GUI Do $msg = GUIGetMsg() Select Case $msg = $YesID MsgBox(0, "You clicked on", "Yes") Case $msg = $NoID MsgBox(0, "You clicked on", "No") Case $msg = $ExitID MsgBox(0, "You clicked on", "Exit") Case $msg = $GUI_EVENT_CLOSE MsgBox(0, "You clicked on", "Close") EndSelect Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID Here is my example: It assocate my own function Show() with hotkey Ctrl+S --> in my GUI only If I used HotKeySet() then it would work in all applications here it works only in my GUI which is advantage in some cases #include <GUIConstantsEx.au3> GUICreate("Custom Msgbox", 210, 80) GUICtrlCreateLabel("Please click a button!", 10, 10) $YesID = GUICtrlCreateButton("Yes", 10, 50, 50, 20) $NoID = GUICtrlCreateButton("No", 80, 50, 50, 20) $ExitID = GUICtrlCreateButton("Exit", 150, 50, 50, 20) $ShowID = GUICtrlCreateDummy() ; Set accelerators for Ctrl+y and Ctrl+n Dim $AccelKeys[3][2]=[["^y", $YesID], ["^n", $NoID], ["^s", $ShowID]] GUISetAccelerators($AccelKeys) GUISetState() ; display the GUI Do $msg = GUIGetMsg() Select Case $msg = $YesID MsgBox(0, "You clicked on", "Yes") Case $msg = $NoID MsgBox(0, "You clicked on", "No") Case $msg = $ExitID MsgBox(0, "You clicked on", "Exit") Case $msg = $GUI_EVENT_CLOSE MsgBox(0, "You clicked on", "Close") Case $msg = $ShowID Show() EndSelect Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID Func Show() MsgBox(0, "Info", "Hello.") EndFunc Note: GUISetAccelerators() is in AutoIt from Beta 3.2.11.3 version EDIT: fixed corrupted topic after forum upgrade
  • 3 replies