Setzt eine Tabelle mit Zugriffstasten in einem GUI Fenster.
GUISetAccelerators ( accelerators [, winhandle] )
accelerators | Ein 2D Array mit der Tabelle mit Zugriffstasten (Siehe Bemerkungen). |
winhandle | [optional] Fenster-Handle, welches von GUICreate() zurückgegeben wurde (voreingestellt ist das zuvor verwendete Fenster). |
Erfolg: | 1. |
Fehler: | 0. |
Zugriffstasten sind ähnlich wie HotKeys, aber es gibt 2 wichtige Unterschiede:
- 1. Sie sind nur aktiv, wenn die in der Funktion angegebene GUI aktiv ist, was bedeutet, dass im Gegensatz zu HotKeys die Zugriffstasten nicht mit anderen laufenden Anwendungen funktionieren.
- 2. Sie können eine Funktion nicht direkt auslösen - sie starten durch ihr verknüpftes Control, welches dann die Funktion mit GUIGetMsg() oder GUICtrlSetOnEvent() Wenn in der GUI kein geeignetes Control vorhanden ist, kann mit GUICtrlCreateDummy ein Dummy-Steuerelement erstellt werden.
Das Array enthält die Zugriffstasten und die Control-ID der verknüpften Controls. Das Array muss als Local/Global $aArray[n][2] deklariert werden - wobei n die Anzahl von zu setzenden Zugriffstasten ist:
$aArray[0][0] = Zugriffstaste (im HotKeySet()-Format) der ersten Taste
$aArray[0][1] = Verknüpfte Control-ID der ersten Taste, welche durch GUICtrlCreate... zurückgegeben wurde
$aArray[1][0] = Zugriffstaste der zweiten Taste
$aArray[1][1] = Verknüpfte Control-ID der zweiten Taste
...
$aArray[n][0] = Zugriffstaste der nten Taste
$aArray[n][1] = Verknüpfte Control-ID der nten Taste
Falls dieser Funktion kein gültiges Array übergeben wird, werden alle Tasten für das angegebene Fensterhandle zurückgesetzt.
- - - - - - - - Erklärung der Controls - - - - - - - -
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
GUICreate("Benutzerdefinierte Msgbox", 270, 80)
GUICtrlCreateLabel("Bitte klicke einen Button an!", 70, 10)
Local $idButton_Yes = GUICtrlCreateButton("Ja", 40, 50, 50, 20)
Local $idButton_No = GUICtrlCreateButton("Nein", 110, 50, 50, 20)
Local $idButton_Exit = GUICtrlCreateButton("Beenden", 180, 50, 50, 20)
; Weist bestimmten Buttons Schnellzugriffstasten zu (für Strg+y und Strg+n)
Local $aAccelKeys[2][2] = [["^y", $idButton_Yes], ["^n", $idButton_No]]
GUISetAccelerators($aAccelKeys)
GUISetState(@SW_SHOW) ; Macht die GUI sichtbar
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
MsgBox($MB_SYSTEMMODAL, "Betätigter Button", "Schließen")
ExitLoop
Case $idButton_Yes
MsgBox($MB_SYSTEMMODAL, "Betätigter Button", "Ja") ; Erscheint wenn der button ausgewählt wurde oder der Hotkey Ctrl + y gedrückt würde
Case $idButton_No
MsgBox($MB_SYSTEMMODAL, "Betätigter Button", "Nein") ; rscheint wenn der button ausgewählt wurde oder der Hotkey Ctrl + n gedrückt würde
Case $idButton_Exit
MsgBox($MB_SYSTEMMODAL, "Betätigter Button", "Beenden")
ExitLoop
EndSwitch
WEnd
GUIDelete() ; Löscht die GUI
EndFunc ;==>Example