#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
	#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
	;#AutoIt3Wrapper_Run_Debug_Mode=Y
	#AutoIt3Wrapper_Res_Icon_Add=C:\Program Files (x86)\AutoIt3\Icons\Wartehinweis.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
; #SCRIPT# --------------------------------------------------------------------------------------------------------------------------------------------
;	Script Name		:	Backup-Menü.au3
;	Beschreibung	:	Menü zum Aufrufen der Backup-Programme.
;
;	Includes		:	<_EigeneFunktionen.au3>, <ButtonConstants.au3>, <EditConstants.au3>, <GUIConstantsEx.au3>, <GuiTab.au3>,
;							<StaticConstants.au3>, <String.au3>, <TabConstants.au3>, <WinAPIConv.au3>, <WindowsConstants.au3>, (<_Ordnerauswahl.au3>?).
;	AutoIt Version	:	3.3.14.5
;	Script Autor	:	BigRox
;	Anmerkung(en)	:	Die Backup-Programme, sind eigenständige Programme und werden nur von diesem Script aufgerufen und konfiguriert.
;							Die Pfade (Eingestellte- und Standard-Pfade) werden in Script "Sonstige Einstellungen",
;							mit der Datei "Backup-Menü.reg" in die Registry importiert.
;
;					! ! ! Script für Windows 10 Home 64-Bit, Windows 10 Pro 64-Bit und Windows 10 Enterprise 64-Bit ! ! !
; -----------------------------------------------------------------------------------------------------------------------------------------------------

; #Funktionen# ================================================================================================================================
;	WM_NOTIFY()
; =====================================================================================================================================================

; Dateien einbinden.
#include <_EigeneFunktionen.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiTab.au3>
#include <StaticConstants.au3>
#include <String.au3> ; Wird für die Funktion _StringRepeat() gebraucht.
#include <TabConstants.au3>
#include <WinAPIConv.au3>
#include <WindowsConstants.au3>
;#include <_Ordnerauswahl.au3>

; Optionen für dieses Script festlegen.
Opt("MustDeclareVars", 1)
Opt("MouseCoordMode", 2)
Opt("GUIResizeMode", $GUI_DOCKALL) ; Kein Control soll bei der Größenänderung der GUI verschoben werden.

; Variablen deklarieren.
Global $sAktualKey, $bArduinoBackupExistiert, $bAutoItBackupExistiert_1, $bAutoItBackupExistiert_2, $idBtnArduinoPfadAendern
Global $idBtnArduinoSichern, $idBtnArduinoStandardpfad, $idBtnAu3PfadAendern, $idBtnAu3Standardpfad, $idBtnBackupAktivieren, $idBtnExePfadAendern
Global $idBtnExeStandardpfad, $idBtnOperaPfadAendern, $idBtnOperaSichern, $idBtnOperaStandardpfad, $idBtnSnippetPfadAendern
Global $idBtnSnippetsSichern, $idBtnSnippetStandardpfad, $idBtnVivaldiPfadAendern, $idBtnVivaldiSichern, $idBtnVivaldiStandardpfad
Global $idGrpSpeicherortArduino, $idGrpSpeicherortAu3, $idGrpSpeicherortExe, $idGrpSpeicherortOpera, $idGrpSpeicherortSnippet
Global $idGrpSpeicherortVivaldi, $hGUI, $hGUI_Hauptfenster, $idGUI_Message, $idLblAktuellerArduinoPfad, $idLblAktuellerAu3Pfad
Global $idLblAktuellerExePfad, $idLblAktuellerOperaPfad, $idLblAktuellerSnippetPfad, $idLblAktuellerVivaldiPfad, $idLblArduinoBackup
Global $idLblArduinoPfad, $idLblAu3Pfad, $idLblAutoItBackup, $idLblExePfad, $idLblHinterArduinoBackup, $idLblHinterAutoItBackup
Global $idLblHinterOperaBackup, $idLblHinterSnippetBackup, $idLblHinterVivaldBackup, $idLblOperaBackup, $idLblOperaPfad, $idLblSnippetBackup
Global $idLblSnippetPfad, $idLblTrenn_1, $idLblTrenn_2, $idLblTrenn_3, $idLblTrenn_4, $idLblVivaldBackup, $idLblVivaldiPfad, $iLV, $sNeuerPfad
Global $bOperaBackupExistiert, $sRegistrySchluessel, $bSnippetBackupExistiert, $sStartPfad, $idTab, $hTab, $idTabArduinoBackup
Global $idTabAutoItBackup, $idTabBackup, $idTabOperaBackup, $idTabSnippetBackup, $idTabVivaldiBackup, $bVivaldiBackupExistiert



#Region ; ************ Sonstiges ************
	; Die Funktion zum Ermitteln des erforderlichen Betriebssystems aufrufen.
	_Betriebssystem(456)
	If @error Then
		Exit (1)
	EndIf

	GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ; Registriert die Funktion, die aufgerufen werden soll, wenn die GUI eine Nachricht erzeugt.

	; Den Splashscreen (GUI) mit dem Wartehinweis anzeigen.
	;	GUI-Titel, GUI-Farbe:Blau, Label-Text, Label-Farbe:HellGrün, Icon:Uhr, Button:Keine, kein Autoclose, Schrift:42, 500, Times New Roman, Dunkelrot, X-Zentriert, Y-Zentriert, Vordergrund.
	$hGUI = _GUI_Meldungen("! Das Programm wird gestartet, bitte warten !", 0x3F4DFC, _StringRepeat(" ", 1) & "Backup-Menü:" & @CRLF & _
			"Bitte warten Sie.", 0x68E84D, @SystemDir & "\miguiresource.dll, 1", 0, 0, "42, 500, Times New Roman, 0xD20F06")

	; Testen, ob die erforderlichen Programme an den richtigen Orten existieren.
	$bAutoItBackupExistiert_1 = FileExists(_PfadErmitteln(@ProgramFilesDir, "AutoIt3.exe", 1, True, False) & _
			"\AutoIt-Backup\AutoIt-Backup.exe")
	$bAutoItBackupExistiert_2 = FileExists(_PfadErmitteln(@ProgramFilesDir, "AutoIt3.exe", 1, True, False) & _
			"\AutoIt-Backup\AutomatischKompilieren.exe")

	$bSnippetBackupExistiert = FileExists(_PfadErmitteln(@ProgramFilesDir, "AutoIt3.exe", 1, True, False) & "\SciTE\cSnippet\SnippetsSichern.exe")

	$bVivaldiBackupExistiert = FileExists(_PfadErmitteln(StringReplace(@ProgramFilesDir, " (x86)", "", -1), "Vivaldi.exe", 1, _
			True, False) & "\Vivaldi-EinstellungenSichern.exe") ; Pfad zu den Einstellungen der 64-Bit-Version von Vivaldi.

	$bOperaBackupExistiert = FileExists(_PfadErmitteln(@ProgramFilesDir, "operamail.exe", 1, True, False) & _
			"\Opera-Mail-EinstellungenSichern.exe")

	$bArduinoBackupExistiert = FileExists(_PfadErmitteln(@ProgramFilesDir, "Arduino-Sichern.exe", 1, True, False))

	; Den Registry-Schlüssel zum Speichern der Pfade in der Registry vorgeben.
	$sRegistrySchluessel = "HKCU\Software\Backup-Menü"
#EndRegion ; ************ Sonstiges ************

#Region ; ************ GUI_Main ************
	; Die GUI erstellen und formatieren (Länge abhängig davon, ob Arduino_sichern.exe existiert).
	If $bArduinoBackupExistiert Then
		$hGUI_Hauptfenster = GUICreate(_StringRepeat(" ", 30) & "Backup-Programme.", 600, 730, -1, -1, _
				BitOR($WS_CAPTION, $DS_MODALFRAME, $WS_SYSMENU))
	Else
		$hGUI_Hauptfenster = GUICreate(_StringRepeat(" ", 30) & "Backup-Programme.", 600, 598, -1, -1, _
				BitOR($WS_CAPTION, $DS_MODALFRAME, $WS_SYSMENU))
	EndIf
	GUISetIcon(@SystemDir & "\shell32.dll", -177, $hGUI_Hauptfenster)
	GUISetBkColor(0x3F4DFC)

	; Das Tab-Control erstellen und sein Handle ermitteln (Länge abhängig davon, ob Arduino_sichern.exe existiert).
	If $bArduinoBackupExistiert Then
		$idTab = GUICtrlCreateTab(20, 20, 560, 688)
	Else
		$idTab = GUICtrlCreateTab(20, 20, 560, 558)
	EndIf
	$hTab = GUICtrlGetHandle($idTab)

	; Das erste Tab erstellen.
	$idTabBackup = GUICtrlCreateTabItem("Backup:")

	$idLblHinterAutoItBackup = GUICtrlCreateLabel("", 40, 50, 520, 120, BitOR($SS_CENTER, $SS_SUNKEN, $WS_BORDER), $WS_EX_CLIENTEDGE)
	GUICtrlSetBkColor($idLblHinterAutoItBackup, 0xFF874D) ; Orange
	GUICtrlSetState($idLblHinterAutoItBackup, $GUI_DISABLE) ; Das Label muss deaktiviert sein, damit sich ein Klick auf den Button erkennen lässt.

	$idLblAutoItBackup = GUICtrlCreateLabel("AutoIt-Backup:", 40, 56, 520, 42, BitOR($SS_CENTER, $SS_CENTERIMAGE))
	GUICtrlSetFont($idLblAutoItBackup, 18, 800, 0, "Times New Roman")
	GUICtrlSetBkColor($idLblAutoItBackup, $GUI_BKCOLOR_TRANSPARENT) ; Damit das Label2 unter das Label1 geschoben werden kann und damit nur die Schrift erscheint.

	$idBtnBackupAktivieren = GUICtrlCreateButton("AutoIt-Backup aktivieren.", 140, 103, 320, 40)
	GUICtrlSetFont($idBtnBackupAktivieren, 14, 800, 0, "Times New Roman")
	GUICtrlSetBkColor($idBtnBackupAktivieren, 0x2FD130) ; Grün

	; Die Trennlinie erstellen und formatieren (die Trennlinie ist auch ein Label).
	$idLblTrenn_1 = GUICtrlCreateLabel(_StringRepeat(".", 91), 20, 152, 560, 26, $SS_CENTER) ; ".", 92 = 120 %
	GUICtrlSetFont($idLblTrenn_1, 17, 400, 0, "Times New Roman") ; 16, 400 = 120 %

	; Abfragen, ob die Programme für das AutoIt-Backup existieren, wenn Nein, die Labels und den Button deaktivieren und entsprechend formatieren.
	If Not $bAutoItBackupExistiert_1 Or Not $bAutoItBackupExistiert_2 Then
		GUICtrlSetBkColor($idBtnBackupAktivieren, 0xC0C0C0) ; Grau
		GUICtrlSetState($idBtnBackupAktivieren, $GUI_DISABLE)
		;GUICtrlSetState($idLblHinterAutoItBackup, $GUI_DISABLE)
		GUICtrlSetBkColor($idLblHinterAutoItBackup, 0xC0C0C0) ; Grau
		GUICtrlSetState($idLblAutoItBackup, $GUI_DISABLE)
	Else
		; Testen, ob das AutoIt-Backup eingerichtet ist, wenn Ja, den Button entsprechend formatieren.
		For $iLV = 1 To 30
			$sAktualKey = RegEnumKey("HKCR\Directory\shell", $iLV)
			If @error Then
				ExitLoop
			EndIf
			If $sAktualKey == "RwSaveSingle" Then
				GUICtrlSetData($idBtnBackupAktivieren, "AutoIt-Backup entfernen.")
				GUICtrlSetBkColor($idBtnBackupAktivieren, 0xBF0000) ; Rot
				ExitLoop
			EndIf
		Next
	EndIf

	$idLblHinterSnippetBackup = GUICtrlCreateLabel("", 40, 180, 520, 120, BitOR($SS_CENTER, $SS_SUNKEN, $WS_BORDER), $WS_EX_CLIENTEDGE)
	GUICtrlSetBkColor($idLblHinterSnippetBackup, 0xFF874D) ; Orange
	GUICtrlSetState($idLblHinterSnippetBackup, $GUI_DISABLE)

	$idLblSnippetBackup = GUICtrlCreateLabel("AutoIt-Snippet-Backup:", 40, 186, 520, 42, BitOR($SS_CENTER, $SS_CENTERIMAGE))
	GUICtrlSetFont($idLblSnippetBackup, 18, 800, 0, "Times New Roman")
	GUICtrlSetBkColor($idLblSnippetBackup, $GUI_BKCOLOR_TRANSPARENT)

	$idBtnSnippetsSichern = GUICtrlCreateButton("AutoIt-Snippets sichern.", 140, 233, 320, 40)
	GUICtrlSetFont($idBtnSnippetsSichern, 14, 800, 0, "Times New Roman")
	GUICtrlSetBkColor($idBtnSnippetsSichern, 0x2FD130) ; Grün

	; Die Trennlinie erstellen und formatieren (die Trennlinie ist auch ein Label).
	$idLblTrenn_2 = GUICtrlCreateLabel(_StringRepeat(".", 91), 20, 282, 560, 26, $SS_CENTER) ; ".", 92 = 120 %
	GUICtrlSetFont($idLblTrenn_2, 17, 400, 0, "Times New Roman") ; 16, 400 = 120 %

	; Abfragen, ob das Programm für den Snippet-Holder existiert, wenn Nein, die Labels und den Button deaktivieren und entsprechend formatieren.
	If Not $bSnippetBackupExistiert Then
		GUICtrlSetBkColor($idBtnSnippetsSichern, 0xC0C0C0) ; Grau
		GUICtrlSetState($idBtnSnippetsSichern, $GUI_DISABLE)
		;GUICtrlSetState($idLblHinterSnippetBackup, $GUI_DISABLE)
		GUICtrlSetBkColor($idLblHinterSnippetBackup, 0xC0C0C0) ; Grau
		GUICtrlSetState($idLblSnippetBackup, $GUI_DISABLE)
	EndIf

	$idLblHinterVivaldBackup = GUICtrlCreateLabel("", 40, 310, 520, 120, BitOR($SS_CENTER, $SS_SUNKEN, $WS_BORDER), $WS_EX_CLIENTEDGE)
	GUICtrlSetBkColor($idLblHinterVivaldBackup, 0xFF874D) ; Orange
	GUICtrlSetState($idLblHinterVivaldBackup, $GUI_DISABLE)

	$idLblVivaldBackup = GUICtrlCreateLabel("Vivaldi-Browser-Backup:", 40, 316, 520, 42, BitOR($SS_CENTER, $SS_CENTERIMAGE))
	GUICtrlSetFont($idLblVivaldBackup, 18, 800, 0, "Times New Roman")
	GUICtrlSetBkColor($idLblVivaldBackup, $GUI_BKCOLOR_TRANSPARENT)

	$idBtnVivaldiSichern = GUICtrlCreateButton("Vivaldi-Einstellungen sichern.", 140, 363, 320, 40)
	GUICtrlSetFont($idBtnVivaldiSichern, 14, 800, 0, "Times New Roman")
	GUICtrlSetBkColor($idBtnVivaldiSichern, 0x2FD130) ; Grün

	; Die Trennlinie erstellen und formatieren (die Trennlinie ist auch ein Label).
	$idLblTrenn_3 = GUICtrlCreateLabel(_StringRepeat(".", 91), 20, 412, 560, 26, $SS_CENTER) ; ".", 92 = 120 %
	GUICtrlSetFont($idLblTrenn_3, 17, 400, 0, "Times New Roman") ; 16, 400 = 120 %

	; Abfragen, ob das Programm für das sichern der Vivaldi-Einstellungen existiert, wenn Nein, die Labels und den Button deaktivieren und entsprechend formatieren.
	If Not $bVivaldiBackupExistiert Then
		GUICtrlSetBkColor($idBtnVivaldiSichern, 0xC0C0C0) ; Grau
		GUICtrlSetState($idBtnVivaldiSichern, $GUI_DISABLE)
		;GUICtrlSetState($idLblHinterVivaldBackup, $GUI_DISABLE)
		GUICtrlSetBkColor($idLblHinterVivaldBackup, 0xC0C0C0) ; Grau
		GUICtrlSetState($idLblVivaldBackup, $GUI_DISABLE)
	EndIf

	$idLblHinterOperaBackup = GUICtrlCreateLabel("", 40, 440, 520, 120, BitOR($SS_CENTER, $SS_SUNKEN, $WS_BORDER), $WS_EX_CLIENTEDGE)
	GUICtrlSetBkColor($idLblHinterOperaBackup, 0xFF874D) ; Orange
	GUICtrlSetState($idLblHinterOperaBackup, $GUI_DISABLE)

	$idLblOperaBackup = GUICtrlCreateLabel("Opera-E-Mail-Backup:", 40, 446, 520, 42, BitOR($SS_CENTER, $SS_CENTERIMAGE))
	GUICtrlSetFont($idLblOperaBackup, 18, 800, 0, "Times New Roman")
	GUICtrlSetBkColor($idLblOperaBackup, $GUI_BKCOLOR_TRANSPARENT)

	$idBtnOperaSichern = GUICtrlCreateButton("Opera-Einstellungen sichern.", 140, 493, 320, 40)
	GUICtrlSetFont($idBtnOperaSichern, 14, 800, 0, "Times New Roman")
	GUICtrlSetBkColor($idBtnOperaSichern, 0x2FD130) ; Grün

	; Abfragen, ob das Programm für das sichern der Opera-Mail-Einstellungen existiert, wenn Nein, die Labels und den Button deaktivieren und entsprechend formatieren.
	If Not $bOperaBackupExistiert Then
		GUICtrlSetBkColor($idBtnOperaSichern, 0xC0C0C0) ; Grau
		GUICtrlSetState($idBtnOperaSichern, $GUI_DISABLE)
		;GUICtrlSetState($idLblHinterOperaBackup, $GUI_DISABLE)
		GUICtrlSetBkColor($idLblHinterOperaBackup, 0xC0C0C0) ; Grau
		GUICtrlSetState($idLblOperaBackup, $GUI_DISABLE)
	EndIf

	; Die Steuerelemente nur erstellen, wenn das Programm zum Sichern der Arduino Sketche usw. existiert.
	If $bArduinoBackupExistiert Then
		; Die Trennlinie erstellen und formatieren (die Trennlinie ist auch ein Label).
		$idLblTrenn_4 = GUICtrlCreateLabel(_StringRepeat(".", 91), 20, 542, 560, 26, $SS_CENTER) ; ".", 92 = 120 %
		GUICtrlSetFont($idLblTrenn_4, 17, 400, 0, "Times New Roman") ; 16, 400 = 120 %

		$idLblHinterArduinoBackup = GUICtrlCreateLabel("", 40, 570, 521, 120, BitOR($SS_CENTER, $SS_SUNKEN, $WS_BORDER), $WS_EX_CLIENTEDGE)
		GUICtrlSetBkColor($idLblHinterArduinoBackup, 0xFF874D) ; Orange
		GUICtrlSetState($idLblHinterArduinoBackup, $GUI_DISABLE)

		$idLblArduinoBackup = GUICtrlCreateLabel("Arduino-Backup:", 40, 576, 520, 42, BitOR($SS_CENTER, $SS_CENTERIMAGE))
		GUICtrlSetFont($idLblArduinoBackup, 18, 800, 0, "Times New Roman")
		GUICtrlSetBkColor($idLblArduinoBackup, $GUI_BKCOLOR_TRANSPARENT)

		$idBtnArduinoSichern = GUICtrlCreateButton("Arduino-Sketche usw. sichern.", 140, 623, 320, 40)
		GUICtrlSetFont($idBtnArduinoSichern, 14, 800, 0, "Times New Roman")
		GUICtrlSetBkColor($idBtnArduinoSichern, 0x2FD130) ; Grün
	Else
		$idBtnArduinoSichern = GUICtrlCreateButton("", -1, -1) ; Der Button wird an derselben Position wie das letzte Steuerelement erstellt (die ID muss existieren, sonst funktioniert die GUI-Schleife nicht!).
		GUICtrlSetState($idBtnArduinoSichern, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnArduinoSichern, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)
	EndIf

	; Nur wenn die Programme "AutoIt-Backup" und "Automatisch kompilieren" existieren, das Tab zum Einstellen der Optionen dafür erstellen.
	If $bAutoItBackupExistiert_1 And $bAutoItBackupExistiert_2 Then
		$idTabAutoItBackup = GUICtrlCreateTabItem("AutoIt-Backup-Optionen")

		; Eine Gruppe beginnen und formatieren.
		$idGrpSpeicherortAu3 = GUICtrlCreateGroup("Speicherort für die AutoIt-.au3-Dateien.", 40, 50, 520, 230, _
				BitOR($GUI_SS_DEFAULT_GROUP, $BS_CENTER, $BS_FLAT))
		GUICtrlSetFont($idGrpSpeicherortAu3, 18, 800, 0, "Times New Roman")

		$idLblAktuellerAu3Pfad = GUICtrlCreateLabel( _
				"Aktueller Pfad: (An den eingestellten Pfad wird automatisch der Programmname angefügt).", 60, 100, 470, 45, _
				BitOR($ES_CENTER, $BS_MULTILINE))
		GUICtrlSetFont($idLblAktuellerAu3Pfad, 12, 800, 0, "Times New Roman")

		$idLblAu3Pfad = GUICtrlCreateLabel(RegRead($sRegistrySchluessel, "AutoIt-au3-Pfad"), 60, 165, 480, 55, _
				BitOR($ES_CENTER, $BS_MULTILINE))
		GUICtrlSetFont($idLblAu3Pfad, 14, 800, 0, "Times New Roman")
		GUICtrlSetColor($idLblAu3Pfad, 0xBF0000) ; Rot

		$idBtnAu3Standardpfad = GUICtrlCreateButton("Standardpfad.", 90, 230, 160, 30)
		GUICtrlSetFont($idBtnAu3Standardpfad, 12, 800, 0, "Times New Roman")

		$idBtnAu3PfadAendern = GUICtrlCreateButton("Ändern...", 350, 230, 160, 30)
		GUICtrlSetFont($idBtnAu3PfadAendern, 12, 800, 0, "Times New Roman")

		; Die Gruppe schließen.
		GUICtrlCreateGroup($idGrpSpeicherortAu3, -99, -99, 1, 1)

		; Die Trennlinie erstellen und formatieren (de Trennlinie ist auch ein Label).
		$idLblTrenn_4 = GUICtrlCreateLabel(_StringRepeat("- ", 37), 20, 290, 560, 30, $SS_CENTER) ; "- ", 38 = 120 %
		GUICtrlSetFont($idLblTrenn_4, 17, 800, 0, "Times New Roman") ; 16, 400 = 120 %

		; Eine weitere Gruppe beginnen und formatieren.
		$idGrpSpeicherortExe = GUICtrlCreateGroup("Speicherort für die AutoIt-.exe-Dateien.", 40, 325, 520, 235, _
				BitOR($GUI_SS_DEFAULT_GROUP, $BS_CENTER, $BS_FLAT))
		GUICtrlSetFont($idGrpSpeicherortExe, 18, 800, 0, "Times New Roman")

		$idLblAktuellerExePfad = GUICtrlCreateLabel( _
				"Aktueller Pfad: (An den eingestellten Pfad wird automatisch der Programmname usw. angefügt).", 60, 375, 470, 45, _
				BitOR($ES_CENTER, $BS_MULTILINE))
		GUICtrlSetFont($idLblAktuellerExePfad, 12, 800, 0, "Times New Roman")

		$idLblExePfad = GUICtrlCreateLabel(RegRead($sRegistrySchluessel, "AutoIt-exe-Pfad"), 60, 440, 480, 55, _
				BitOR($ES_CENTER, $BS_MULTILINE))
		GUICtrlSetFont($idLblExePfad, 14, 800, 0, "Times New Roman")
		GUICtrlSetColor($idLblExePfad, 0xBF0000) ; Rot

		$idBtnExeStandardpfad = GUICtrlCreateButton("Standardpfad.", 90, 510, 160, 30)
		GUICtrlSetFont($idBtnExeStandardpfad, 12, 800, 0, "Times New Roman")

		$idBtnExePfadAendern = GUICtrlCreateButton("Ändern...", 350, 510, 160, 30)
		GUICtrlSetFont($idBtnExePfadAendern, 12, 800, 0, "Times New Roman")

		; Die Gruppe schließen.
		GUICtrlCreateGroup($idGrpSpeicherortExe, -99, -99, 1, 1)
	Else
		$idBtnAu3Standardpfad = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnAu3Standardpfad, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnAu3Standardpfad, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)

		$idBtnAu3PfadAendern = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnAu3PfadAendern, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnAu3PfadAendern, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)

		$idBtnExeStandardpfad = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnExeStandardpfad, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnExeStandardpfad, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)

		$idBtnExePfadAendern = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnExePfadAendern, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnExePfadAendern, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)
	EndIf

	; Nur wenn das Programm des Snippet-Holders existiert, das Tab zum Einstellen der Optionen dafür erstellen.
	If $bSnippetBackupExistiert Then
		$idTabSnippetBackup = GUICtrlCreateTabItem("Snippet-Backup-Optionen.")

		$idGrpSpeicherortSnippet = GUICtrlCreateGroup("Speicherort für die AutoIt" & @CRLF & "Snippet-Dateien:", 40, 80, 520, 300, _
				BitOR($GUI_SS_DEFAULT_GROUP, $BS_CENTER, $BS_FLAT, $BS_MULTILINE))
		GUICtrlSetFont($idGrpSpeicherortSnippet, 18, 800, 0, "Times New Roman")

		$idLblAktuellerSnippetPfad = GUICtrlCreateLabel( _
				"Aktueller Pfad (An den eingestellten Pfad wird automatisch der Programmname usw. angefügt):", 60, 175, 470, 45, _
				BitOR($ES_CENTER, $BS_MULTILINE))
		GUICtrlSetFont($idLblAktuellerSnippetPfad, 12, 800, 0, "Times New Roman")

		$idLblSnippetPfad = GUICtrlCreateLabel(RegRead($sRegistrySchluessel, "AutoIt-Snippet-Pfad"), 60, 245, 480, 55, _
				BitOR($ES_CENTER, $BS_MULTILINE))
		GUICtrlSetFont($idLblSnippetPfad, 14, 800, 0, "Times New Roman")
		GUICtrlSetColor($idLblSnippetPfad, 0xBF0000) ; Rot

		$idBtnSnippetStandardpfad = GUICtrlCreateButton("Standardpfad.", 90, 328, 160, 30)
		GUICtrlSetFont($idBtnSnippetStandardpfad, 12, 800, 0, "Times New Roman")

		$idBtnSnippetPfadAendern = GUICtrlCreateButton("Ändern...", 350, 328, 160, 30)
		GUICtrlSetFont($idBtnSnippetPfadAendern, 12, 800, 0, "Times New Roman")

		; Die Gruppe schließen.
		GUICtrlCreateGroup($idGrpSpeicherortSnippet, -99, -99, 1, 1)
	Else
		$idBtnSnippetStandardpfad = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnSnippetStandardpfad, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnSnippetStandardpfad, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)

		$idBtnSnippetPfadAendern = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnSnippetPfadAendern, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnSnippetPfadAendern, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)
	EndIf

	; Nur wenn das Programm zum Sichern der Vivaldi-Einstellungen existiert, das Tab zum Einstellen der Optionen dafür erstellen.
	If $bVivaldiBackupExistiert Then
		$idTabVivaldiBackup = GUICtrlCreateTabItem("Vivaldi-Backup-Optionen.")

		$idGrpSpeicherortVivaldi = GUICtrlCreateGroup("Speicherort für die" & @CRLF & "Vivaldi-Einstellungen:", 40, 80, 520, 300, _
				BitOR($GUI_SS_DEFAULT_GROUP, $BS_CENTER, $BS_FLAT, $BS_MULTILINE))
		GUICtrlSetFont($idGrpSpeicherortVivaldi, 18, 800, 0, "Times New Roman")

		$idLblAktuellerVivaldiPfad = GUICtrlCreateLabel("Aktueller Vivaldi-Backup-Pfad:", 60, 175, 470, 22, $ES_CENTER)
		GUICtrlSetFont($idLblAktuellerVivaldiPfad, 12, 800, 0, "Times New Roman")

		$idLblVivaldiPfad = GUICtrlCreateLabel(RegRead($sRegistrySchluessel, "Vivaldi-Browser-Pfad"), 80, 210, 480, 110, $BS_MULTILINE)
		GUICtrlSetFont($idLblVivaldiPfad, 14, 800, 0, "Times New Roman")
		GUICtrlSetColor($idLblVivaldiPfad, 0xBF0000) ; Rot

		$idBtnVivaldiStandardpfad = GUICtrlCreateButton("Standardpfad", 90, 328, 160, 30)
		GUICtrlSetFont($idBtnVivaldiStandardpfad, 12, 800, 0, "Times New Roman")

		$idBtnVivaldiPfadAendern = GUICtrlCreateButton("Ändern...", 350, 328, 160, 30)
		GUICtrlSetFont($idBtnVivaldiPfadAendern, 12, 800, 0, "Times New Roman")

		; Die Gruppe schließen.
		GUICtrlCreateGroup($idGrpSpeicherortVivaldi, -99, -99, 1, 1)
	Else
		$idBtnVivaldiStandardpfad = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnVivaldiStandardpfad, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnVivaldiStandardpfad, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)

		$idBtnVivaldiPfadAendern = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnVivaldiPfadAendern, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnVivaldiPfadAendern, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)
	EndIf


	; Nur wenn das Programm zum Sichern der Opera-Mail-Einstellungen existiert, das Tab zum Einstellen der Optionen dafür erstellen.
	If $bOperaBackupExistiert Then
		$idTabOperaBackup = GUICtrlCreateTabItem("Opera-Backup-Optionen.")

		$idGrpSpeicherortOpera = GUICtrlCreateGroup("Speicherort für die" & @CRLF & "Opera-Einstellungen:", 40, 80, 520, 300, _
				BitOR($GUI_SS_DEFAULT_GROUP, $BS_CENTER, $BS_FLAT, $BS_MULTILINE))
		GUICtrlSetFont($idGrpSpeicherortOpera, 18, 800, 0, "Times New Roman")

		$idLblAktuellerOperaPfad = GUICtrlCreateLabel("Aktueller Opera-Backup-Pfad:", 60, 175, 470, 22, $ES_CENTER)
		GUICtrlSetFont($idLblAktuellerOperaPfad, 12, 800, 0, "Times New Roman")

		$idLblOperaPfad = GUICtrlCreateLabel(RegRead($sRegistrySchluessel, "Opera-Mail-Pfad"), 80, 210, 480, 110, $BS_MULTILINE)
		GUICtrlSetFont($idLblOperaPfad, 14, 800, 0, "Times New Roman")
		GUICtrlSetColor($idLblOperaPfad, 0xBF0000) ; Rot

		$idBtnOperaStandardpfad = GUICtrlCreateButton("Standardpfad", 90, 328, 160, 30)
		GUICtrlSetFont($idBtnOperaStandardpfad, 12, 800, 0, "Times New Roman")

		$idBtnOperaPfadAendern = GUICtrlCreateButton("Ändern...", 350, 328, 160, 30)
		GUICtrlSetFont($idBtnOperaPfadAendern, 12, 800, 0, "Times New Roman")

		; Die Gruppe schließen.
		GUICtrlCreateGroup($idGrpSpeicherortOpera, -99, -99, 1, 1)
	Else
		$idBtnOperaStandardpfad = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnOperaStandardpfad, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnOperaStandardpfad, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)

		$idBtnOperaPfadAendern = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnOperaPfadAendern, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnOperaPfadAendern, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)
	EndIf

	; Nur wenn das Programm zum Sichern der Arduino Sketche usw. existiert, das Tab zum Einstellen der Optionen dafür erstellen.
	If $bArduinoBackupExistiert Then
		$idTabArduinoBackup = GUICtrlCreateTabItem("Arduino-Backup-Optionen.")

		$idGrpSpeicherortArduino = GUICtrlCreateGroup("Speicherort für die" & @CRLF & "Arduino Sketche usw.:", 40, 80, 520, 300, _
				BitOR($GUI_SS_DEFAULT_GROUP, $BS_CENTER, $BS_FLAT, $BS_MULTILINE))
		GUICtrlSetFont($idGrpSpeicherortArduino, 18, 800, 0, "Times New Roman")

		$idLblAktuellerArduinoPfad = GUICtrlCreateLabel("Aktueller Arduino-Backup-Pfad:", 60, 175, 470, 22, $ES_CENTER)
		GUICtrlSetFont($idLblAktuellerArduinoPfad, 12, 800, 0, "Times New Roman")

		$idLblArduinoPfad = GUICtrlCreateLabel(RegRead($sRegistrySchluessel, "Arduino-Pfad"), 80, 210, 480, 110, $BS_MULTILINE)
		GUICtrlSetFont($idLblArduinoPfad, 14, 800, 0, "Times New Roman")
		GUICtrlSetColor($idLblArduinoPfad, 0xBF0000) ; Rot

		$idBtnArduinoStandardpfad = GUICtrlCreateButton("Standardpfad", 90, 328, 160, 30)
		GUICtrlSetFont($idBtnArduinoStandardpfad, 12, 800, 0, "Times New Roman")

		$idBtnArduinoPfadAendern = GUICtrlCreateButton("Ändern...", 350, 328, 160, 30)
		GUICtrlSetFont($idBtnArduinoPfadAendern, 12, 800, 0, "Times New Roman")

		; Die Gruppe schließen.
		GUICtrlCreateGroup($idGrpSpeicherortArduino, -99, -99, 1, 1)
	Else
		$idBtnArduinoStandardpfad = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnArduinoStandardpfad, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnArduinoStandardpfad, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)

		$idBtnArduinoPfadAendern = GUICtrlCreateButton("", -1, -1)
		GUICtrlSetState($idBtnArduinoPfadAendern, $GUI_HIDE) ; Den Button verstecken.
		GUICtrlSetState($idBtnArduinoPfadAendern, $GUI_DISABLE) ; Den Button deaktivieren (damit er nicht aufgerufen werden kann, wenn das Programm nicht existiert)
	EndIf

	; Das Erstellen der Tabs beenden.
	GUICtrlCreateTabItem("")

	; Die GUI mit dem Wartehinweis wieder löschen.
	GUIDelete($hGUI)

	; Die GUI anzeigen.
	GUISetState(@SW_SHOW, $hGUI_Hauptfenster)
#EndRegion ; ************ GUI_Main ************

#Region ; ************ GUI_Schleife ************
	While 1
		$idGUI_Message = GUIGetMsg()
		Switch $idGUI_Message
			Case $GUI_EVENT_CLOSE
				ExitLoop

			Case $idBtnBackupAktivieren ; Button AutoIt-Backup einrichten.
				RunWait('"' & _PfadErmitteln(@ProgramFilesDir, "AutoIt3.exe", 1, True, False) & _
						"\AutoIt-Backup\AutoIt-BackupEinrichten.exe" & '"')
				; Die Unterschlüssel nacheinander einlesen und die Schleife verlassen, wenn alle Unterschlüssel eingelesen wurden oder der gesuchte Unterschlüssel gefunden wurde.
				For $iLV = 1 To 30
					$sAktualKey = RegEnumKey("HKCR\Directory\shell", $iLV)
					If @error Or $sAktualKey == "RwSaveSingle" Then
						ExitLoop
					EndIf
				Next

				; Testen, ob der geuchte Unterschlüssel vorhanden ist, wenn "Ja", den Button entsprechend formatieren und eine ensprechende Erfolgsmeldung ausgeben.
				If $sAktualKey == "RwSaveSingle" Then
					GUICtrlSetData($idBtnBackupAktivieren, "AutoIt-Backup entfernen.")
					GUICtrlSetBkColor($idBtnBackupAktivieren, 0xBF0000) ; Rot
					; GUI-Titel, GUI-Farbe:Blau, Label-Text, Label-Farbe:HellGrün, Icon:Hacken, Button:"OK" und "Abbrechen"/"Ja", "Nein" und "Abbrechen", kein Autoclose, Schrift:16, 500, Tahoma, Schwarz, X-Zentriert, Y-Zentriert, Vordergrund.
					_GUI_Meldungen('! ! !  E R F O L G  ! ! !', 0x3F4DFC, "Das AutoIt-Backup wurde erfolgreich eingerichtet!", 0x68E84D, _
							@SystemDir & "\comres.dll, 8", 1, 0, "16, 500, Tahoma, 0x000000")
				Else
					GUICtrlSetData($idBtnBackupAktivieren, "AutoIt-Backup aktivieren.")
					GUICtrlSetBkColor($idBtnBackupAktivieren, 0x2FD130) ; Grün
					; GUI-Titel, GUI-Farbe:Blau, Label-Text, Label-Farbe:HellGrün, Icon:Hacken, Button:"OK" und "Abbrechen"/"Ja", "Nein" und "Abbrechen", kein Autoclose, Schrift:16, 500, Tahoma, Schwarz, X-Zentriert, Y-Zentriert, Vordergrund.
					_GUI_Meldungen('! ! !  E R F O L G  ! ! !', 0x3F4DFC, "Das AutoIt-Backup wurde erfolgreich entfernt!", 0x68E84D, _
							@SystemDir & "\comres.dll, 8", 1, 0, "16, 500, Tahoma, 0x000000")
				EndIf
				;ExitLoop

			Case $idBtnSnippetsSichern ; Button AutoIt-Snippets sichern.
				; Den Hintergrund des Buttons, während des Backups, rot anzeigen.
				GUICtrlSetBkColor($idBtnSnippetsSichern, 0xBF0000) ; Rot
				RunWait('"' & _PfadErmitteln( _
						@ProgramFilesDir, "AutoIt3.exe", 1, True, False) & "\SciTE\cSnippet\SnippetsSichern.exe" & '"')
				; Den Hintergrund des Buttons wieder grün anzeigen.
				GUICtrlSetBkColor($idBtnSnippetsSichern, 0x2FD130) ; Grün
				;ExitLoop

			Case $idBtnVivaldiSichern ; Button Vivaldi-Einstellungen sichern.
				; Den Hintergrund des Buttons, während des Backups, rot anzeigen.
				GUICtrlSetBkColor($idBtnVivaldiSichern, 0xBF0000) ; Rot

				RunWait('"' & (_PfadErmitteln(StringReplace( _
						@ProgramFilesDir, " (x86)", "", -1), "Vivaldi.exe", 1, True, False) & "\Vivaldi-EinstellungenSichern.exe") & '"')

				; Den Hintergrund des Buttons wieder grün anzeigen.
				GUICtrlSetBkColor($idBtnVivaldiSichern, 0x2FD130) ; Grün
				;ExitLoop

			Case $idBtnOperaSichern ; Button Opera-Einstellungen sichern.
				; Den Hintergrund des Buttons, während des Backups, rot anzeigen.
				GUICtrlSetBkColor($idBtnOperaSichern, 0xBF0000) ; Rot
				RunWait('"' & (_PfadErmitteln( _
						@ProgramFilesDir, "operamail.exe", 1, True, False) & "\Opera-Mail-EinstellungenSichern.exe") & '"')
				; Den Hintergrund des Buttons wieder grün anzeigen.
				GUICtrlSetBkColor($idBtnOperaSichern, 0x2FD130) ; Grün
				;ExitLoop

			Case $idBtnArduinoSichern ; Button Arduino Sketche usw. sichern.
				; Den Hintergrund des Buttons, während des Backups, rot anzeigen.
				GUICtrlSetBkColor($idBtnArduinoSichern, 0xBF0000) ; Rot
				RunWait('"' & (_PfadErmitteln( _
						@ProgramFilesDir, "arduino.exe", 1, True, False) & "\Arduino-Sichern.exe") & '"')
				; Den Hintergrund des Buttons wieder grün anzeigen.
				GUICtrlSetBkColor($idBtnArduinoSichern, 0x2FD130) ; Grün
				;ExitLoop

			Case $idBtnAu3Standardpfad ; Button für den AutoIt-Backup-.au3-Standardpfad.
				RegWrite($sRegistrySchluessel, "AutoIt-au3-Pfad", "REG_SZ", RegRead($sRegistrySchluessel, "AutoIt-au3-Standardpfad"))
				GUICtrlSetData($idLblAu3Pfad, RegRead($sRegistrySchluessel, "AutoIt-au3-Standardpfad"))

			Case $idBtnAu3PfadAendern ; Button Speicherort für die AutoIt-Backup-.au3-Dateien ändern.
				$sStartPfad = RegRead($sRegistrySchluessel, "AutoIt-au3-Pfad")
				$sNeuerPfad = FileSelectFolder(".au3-Ordner für das AutoIt-Backup.", _
						StringLeft($sStartPfad, StringInStr($sStartPfad, "\", 0, -1) - 1))
				If @error Then
					$sNeuerPfad = $sStartPfad
				EndIf
				;$NeuerPfad = _Ordnerauswahl(RegRead($RegistrySchluessel, "AutoIt-au3-Pfad"), ".au3-Ordner für das AutoIt-Backup.")
				RegWrite($sRegistrySchluessel, "AutoIt-au3-Pfad", "REG_SZ", $sNeuerPfad)
				GUICtrlSetData($idLblAu3Pfad, RegRead($sRegistrySchluessel, "AutoIt-au3-Pfad"))

			Case $idBtnExeStandardpfad ; Button für den AuitoIt-Backup-.exe-Standardpfad.
				RegWrite($sRegistrySchluessel, "AutoIt-exe-Pfad", "REG_SZ", RegRead($sRegistrySchluessel, "AutoIt-exe-Standardpfad"))
				GUICtrlSetData($idLblExePfad, RegRead($sRegistrySchluessel, "AutoIt-exe-Standardpfad"))

			Case $idBtnExePfadAendern ; Button Speicherort für die AutoIt-Backup-.exe-Dateien ändern.
				$sStartPfad = RegRead($sRegistrySchluessel, "AutoIt-exe-Pfad")
				$sNeuerPfad = FileSelectFolder(".exe-Ordner für das AutoIt-Backup.", _
						StringLeft($sStartPfad, StringInStr($sStartPfad, "\", 0, -1) - 1))
				If @error Then
					$sNeuerPfad = $sStartPfad
				EndIf
				;$NeuerPfad = _Ordnerauswahl(RegRead($RegistrySchluessel, "AutoIt-exe-Pfad"), ".exe-Ordner für das AutoIt-Backup.")
				RegWrite($sRegistrySchluessel, "AutoIt-exe-Pfad", "REG_SZ", $sNeuerPfad)
				GUICtrlSetData($idLblExePfad, RegRead($sRegistrySchluessel, "AutoIt-exe-Pfad"))

			Case $idBtnSnippetStandardpfad ; Button für den Snippet-Standardpfad.
				RegWrite($sRegistrySchluessel, "AutoIt-Snippet-Pfad", "REG_SZ", RegRead($sRegistrySchluessel, "AutoIt-Snippet-Standardpfad"))
				GUICtrlSetData($idLblSnippetPfad, RegRead($sRegistrySchluessel, "AutoIt-Snippet-Standardpfad"))

			Case $idBtnSnippetPfadAendern ; Button Speicherort für AutoIt-Snippet-Dateien ändern.
				$sStartPfad = RegRead($sRegistrySchluessel, "AutoIt-Snippet-Pfad")
				$sNeuerPfad = FileSelectFolder("Backup-Ordner für die AutoIt-Snippets.", _
						StringLeft($sStartPfad, StringInStr($sStartPfad, "\", 0, -1) - 1))
				If @error Then
					$sNeuerPfad = $sStartPfad
				EndIf
				;$NeuerPfad = _Ordnerauswahl(RegRead($RegistrySchluessel, "AutoIt-Snippet-Pfad"), "Backup-Ordner für die AutoIt-Snippets.")
				RegWrite($sRegistrySchluessel, "AutoIt-Snippet-Pfad", "REG_SZ", $sNeuerPfad)
				GUICtrlSetData($idLblSnippetPfad, RegRead($sRegistrySchluessel, "AutoIt-Snippet-Pfad"))

			Case $idBtnVivaldiStandardpfad ; Button für den Vivaldi-Standardpfad.
				RegWrite($sRegistrySchluessel, "Vivaldi-Browser-Pfad", "REG_SZ", _
						RegRead($sRegistrySchluessel, "Vivaldi-Browser-Standardpfad"))
				GUICtrlSetData($idLblVivaldiPfad, RegRead($sRegistrySchluessel, "Vivaldi-Browser-Standardpfad"))

			Case $idBtnVivaldiPfadAendern ; Button Speicherort für Vivadi-Einstellungen ändern.
				$sStartPfad = RegRead($sRegistrySchluessel, "Vivaldi-Browser-Pfad")
				$sNeuerPfad = FileSelectFolder("Backup-Ordner für die Vivaldi-Einstellungen.", _
						StringLeft($sStartPfad, StringInStr($sStartPfad, "\", 0, -1) - 1))
				If @error Then
					$sNeuerPfad = $sStartPfad
				EndIf
				;$NeuerPfad = _Ordnerauswahl(RegRead($RegistrySchluessel, "Vivaldi-Browser-Pfad"), "Backup-Ordner für die Vivaldi-Einstellungen.")
				RegWrite($sRegistrySchluessel, "Vivaldi-Browser-Pfad", "REG_SZ", $sNeuerPfad)
				GUICtrlSetData($idLblVivaldiPfad, RegRead($sRegistrySchluessel, "Vivaldi-Browser-Pfad"))

			Case $idBtnOperaStandardpfad ; Button für den Opera-Mail-Standardpfad.
				RegWrite($sRegistrySchluessel, "Opera-Mail-Pfad", "REG_SZ", RegRead($sRegistrySchluessel, "Opera-Mail-Standardpfad"))
				GUICtrlSetData($idLblOperaPfad, RegRead($sRegistrySchluessel, "Opera-Mail-Standardpfad"))

			Case $idBtnOperaPfadAendern ; Button Speicherort für die Opera-Einstellungen ändern.
				$sStartPfad = RegRead($sRegistrySchluessel, "Opera-Mail-Pfad")
				$sNeuerPfad = FileSelectFolder("Backup-Ordner für die Opera-Einstellungen.", _
						StringLeft($sStartPfad, StringInStr($sStartPfad, "\", 0, -1) - 1))
				If @error Then
					$sNeuerPfad = $sStartPfad
				EndIf
				;$NeuerPfad = _Ordnerauswahl(RegRead($RegistrySchluessel, "Opera-Mail-Pfad"), "Backup-Ordner für die Opera-Einstellungen.")
				RegWrite($sRegistrySchluessel, "Opera-Mail-Pfad", "REG_SZ", $sNeuerPfad)
				GUICtrlSetData($idLblOperaPfad, RegRead($sRegistrySchluessel, "Opera-Mail-Pfad"))

			Case $idBtnArduinoStandardpfad ; Button für den Arduino-Standardpfad.
				RegWrite($sRegistrySchluessel, "Arduino-Pfad", "REG_SZ", RegRead($sRegistrySchluessel, "Arduino-Standardpfad"))
				GUICtrlSetData($idLblArduinoPfad, RegRead($sRegistrySchluessel, "Arduino-Standardpfad"))

			Case $idBtnArduinoPfadAendern ; Button Speicherort für die Arduino Sketche usw. ändern.
				$sStartPfad = RegRead($sRegistrySchluessel, "Arduino-Pfad")
				$sNeuerPfad = FileSelectFolder("Backup-Ordner für die Arduino Sketche usw.", _
						StringLeft($sStartPfad, StringInStr($sStartPfad, "\", 0, -1) - 1))
				If @error Then
					$sNeuerPfad = $sStartPfad
				EndIf
				;$NeuerPfad = _Ordnerauswahl(RegRead($RegistrySchluessel, "Arduino-Pfad"), "Backup-Ordner für die Arduino Sketche usw.")
				RegWrite($sRegistrySchluessel, "Arduino-Pfad", "REG_SZ", $sNeuerPfad)
				GUICtrlSetData($idLblArduinoPfad, RegRead($sRegistrySchluessel, "Arduino-Pfad"))
		EndSwitch
	WEnd
#EndRegion ; ************ GUI_Schleife ************

GUIDelete($hGUI_Hauptfenster)
Exit
