﻿;-- TIME_STAMP   2020-04-19 17:17:29

#include 'Accelerators.au3'


_Example()


Func _Example()
	Local $aMsg, $hGui, $btn, $hGui2, $ID_1, $ID_2, $ID_3, $ID_4, $ID_5, $ID_6, $bDeleted = False, $bChanged = False

	$hGui = GUICreate('Test')
	$btn = GUICtrlCreateButton('Button', 50, 50, 100, 25)
	_Accelerator_Create($hGui, '^+0', $btn)
	$ID_1 = _Accelerator_Create($hGui, '^+1')  ; Ctrl+Shift+1
	$ID_2 = _Accelerator_Create($hGui, '^+2')
	$ID_3 = _Accelerator_Create($hGui, '^+3')
	$ID_4 = _Accelerator_Create($hGui, '^+4')

	$hGui2 = GUICreate('Test 2')
	$ID_5 = _Accelerator_Create($hGui2, '^+5')
	$ID_6 = _Accelerator_Create($hGui2, '^+6')

	GUISetState(@SW_SHOW, $hGui)


	ConsoleWrite('Abfrage Accelerator für "$ID_3": ' & _Accelerator_GetHotkey($hGui, $ID_3) & @CRLF)
	ConsoleWrite('Abfrage ID für Accelerator "^+3": ' & _Accelerator_GetID($hGui, '^+3') & @CRLF)


	While True
		$aMsg = GUIGetMsg(1)
		Switch $aMsg[0]
			Case -3
				If $aMsg[1] = $hGui Then
					Exit
				Else
					GUISetState(@SW_HIDE, $hGui2)
				EndIf
			Case $btn
				MsgBox(0, '', 'Button per Klick/Hotkey aktiviert')
			Case $ID_1
				MsgBox(0, '', 'Hotkey für "ID_1" aufgerufen.')
				ConsoleWrite('Hotkey für "ID_1" aufgerufen.' & @CRLF)
			Case $ID_2
				If Not $bChanged Then
					MsgBox(0, '', 'Hotkey für "ID_2" aufgerufen.' & @LF & 'Ändere Hotkey für "$ID_2" zu <Ctrl+Shift+9>')
					_Accelerator_ChangeHotkey($hGui, $ID_2, '^+9')
					$bChanged = True
					ConsoleWrite('Hotkey für "ID_2" aufgerufen. Hotkey für "$ID_2" zu <Ctrl+Shift+9> geändert.' & @CRLF)
				Else
					MsgBox(0, '', 'Neuen Hotkey für "ID_2" aufgerufen.')
					ConsoleWrite('Neuen Hotkey für "ID_2" aufgerufen.' & @CRLF)
				EndIf
			Case $ID_3
				If Not $bDeleted Then
					MsgBox(0, '', 'Hotkey für "ID_3" aufgerufen.' & @LF & 'Lösche "$ID_1"')
					_Accelerator_Delete($hGui, $ID_1)
					$bDeleted = True
					ConsoleWrite('Hotkey für "ID_3" aufgerufen. "$ID_1" gelöscht.' & @CRLF)
				Else
					MsgBox(0, '', 'Hotkey für "ID_3" aufgerufen.')
					ConsoleWrite('Hotkey für "ID_3" aufgerufen.' & @CRLF)
				EndIf
			Case $ID_4
				MsgBox(0, '', 'Hotkey für "ID_4" aufgerufen.' & @LF & 'Zeige Gui 2, Hotkeys dort: <Ctrl+Shift+5>, <Ctrl+Shift+6>')
				GUISetState(@SW_SHOW, $hGui2)
				ConsoleWrite('Hotkey für "ID_4" aufgerufen. Wechsel zu GUI2 mit dortigen Hotkeys: <Ctrl+Shift+5>, <Ctrl+Shift+6>' & @CRLF)
			Case $ID_5
				MsgBox(0, '', 'Hotkey für "ID_5" aufgerufen.')
				ConsoleWrite('Hotkey für "ID_5" aufgerufen.' & @CRLF)
			Case $ID_6
				MsgBox(0, '', 'Hotkey für "ID_6" aufgerufen.' & @LF & 'Lösche alle Hotkeys auf dieser GUI.')
				_Accelerator_Delete($hGui2)
				ConsoleWrite('Hotkey für "ID_6" aufgerufen. Alle Hotkeys für GUI2 gelöscht.' & @CRLF)
		EndSwitch
	WEnd
EndFunc  ;==>_Example
