#include <TrayConstants.au3>
#include <MsgBoxConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$lw = getDrive()
$path2USBSecure = @ScriptDir & '\truecrypt\TrueCrypt.exe /v Data\encrypted /m rm /a /e /q'
$path2USBSecure_encrypt = @ScriptDir & '\truecrypt\TrueCrypt.exe /q /d'
$path2Explorer = 'explorer.exe'

If $lw = "0" Then
$status ="Kein entschlüsseltes Laufwerk gefunden!"
;==>Check routine, only for Debuging**** MsgBox(0, "", $status)

Else
	$status ="Entschlüsseltes Laufwerk gefunden: "&$lw&"\"
;==>Check routine, only for Debuging****	MsgBox(0, "", $status)
EndIf



#Region ### START Koda GUI section ### Form=D:\Entwicklung\GUI.kxf
$Form1 = GUICreate("USB Secure Data", 326, 251, 266, 299)
$Label1 = GUICtrlCreateLabel("USB Secure Data", 8, 8, 306, 42, $SS_CENTER)
GUICtrlSetFont(-1, 20, 400, 0, "Microsoft Sans Serif")
GUICtrlSetColor(-1, 0x3399FF)
$StatusBar1 = _GUICtrlStatusBar_Create($Form1)
Dim $StatusBar1_PartsWidth[1] = [-1]
_GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth)
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "© by T. Trunz", 0)
_GUICtrlStatusBar_SetBkColor($StatusBar1, 0xA4A0A0)
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 25)
$Button1 = GUICtrlCreateButton("USB Stick entschlüsseln", 8, 72, 177, 41)
$Button2 = GUICtrlCreateButton("USB Stick verschlüsseln", 8, 128, 177, 41)
$Button3 = GUICtrlCreateButton(">>", 192, 72, 41, 41)
GUICtrlSetFont(-1, 12, 800, 0, "Arial")


If $lw = "0" Then
	;==> Ampel Rot wird dargestellt
$Label2 = GUICtrlCreateLabel($status, 0, 176, 183, 44, $SS_CENTER)
GUICtrlSetFont(-1, 13, 400, 2, "Arial")
GUICtrlSetColor(-1, 0xFF0000)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\bin\ampel_rot.jpg", 240, 56, 57, 153)
Else
	;==> Ampel Grün wird dargestellt
	$Label2 = GUICtrlCreateLabel($status, 0, 176, 183, 44, $SS_CENTER)
	GUICtrlSetBkColor($Button1,0x00FF00)
GUICtrlSetFont(-1, 13, 400, 2, "Arial")
GUICtrlSetColor(-1, 0x00FF00)

$Pic2 = GUICtrlCreatePic(@ScriptDir & "\bin\ampel_gruen.jpg", 240, 56, 57, 153)
EndIf
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

If $lw = "0" Then
$status ="Kein entschlüsseltes Laufwerk gefunden!"
;==>Check routine, only for Debuging****MsgBox(0, "", $status)
GUICtrlDelete ($Button3)

Else
	$status ="Entschlüsseltes Laufwerk gefunden: "&$lw&"\"
;==>Check routine, only for Debuging****	MsgBox(0, "", $status)
EndIf






While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			$lw = getDrive()
			If $lw <> "0" Then
			$tmp=MsgBox(3, "", "Ein verschlüsseltes Laufwerk ist noch verbunden!" &@LF &"Möchten Sie dieses trennen?")
				Switch $tmp
				Case 6
				encrypt()
				GUICtrlDelete ($Button1)
				$Button1 = GUICtrlCreateButton("USB Stick entschlüsseln", 8, 72, 177, 41)
				Exit
			Case 7
				Exit
				EndSwitch
			Else
				Exit
			EndIf

		Case $Button1
			decrypt()
			Local $z
			Local $y
			Do
				$y = $y + 1
				$z = getDrive()
			Until $z <> "0" Or $y = "9000"
			If $z <> "0" Then
				$status ="Entschlüsseltes Laufwerk gefunden: "&$z&"\"
			GUICtrlSetBkColor($Button1,0x00FF00)
			GUICtrlDelete ($Label2)
			$Label2 = GUICtrlCreateLabel($status, 0, 176, 183, 44, $SS_CENTER)
			GUICtrlSetFont(-1, 13, 400, 2, "Arial")
			GUICtrlSetColor(-1, 0x00FF00)
			$Button3 = GUICtrlCreateButton(">>", 192, 72, 41, 41)
			GUICtrlSetFont(-1, 12, 800, 0, "Arial")
			GUICtrlDelete ($Pic1)
			$Pic2 = GUICtrlCreatePic(@ScriptDir & "\bin\ampel_gruen.jpg", 240, 56, 57, 153)
			TrayTip("Wechseldatenträger wurde entschlüsselt", "Verschlüsselter Wechseldatenträger eingebunden.", 0, $TIP_ICONASTERISK)
		Else
			TrayTip("Wechseldatenträger wurde nicht entschlüsselt", "Bitte versuchen Sie die entschlüsselung erneut. ", 0, $TIP_ICONASTERISK)
		EndIf


		Case $Button2
			encrypt()
			Local $z
			Do
				$z = getDrive()
			Until $z = "0"
			$status ="Kein entschlüsseltes Laufwerk gefunden!"
			GUICtrlDelete ($Button1)
			GUICtrlDelete ($Button3)
			$Button1 = GUICtrlCreateButton("USB Stick entschlüsseln", 8, 72, 177, 41)
			GUICtrlDelete ($Label2)
			$Label2 = GUICtrlCreateLabel($status, 0, 176, 183, 44, $SS_CENTER)
			GUICtrlSetFont(-1, 13, 400, 2, "Arial")
			GUICtrlSetColor(-1, 0xFF0000)
			GUICtrlDelete ($Pic2)
			$Pic1 = GUICtrlCreatePic(@ScriptDir & "\bin\ampel_rot.jpg", 240, 56, 57, 153)
			TrayTip("Wechseldatenträger wurde verschlüsselt", "Wechseldatenträger wurde verschlüsselt und getrennt." &@LF &"Das Programm kann Beendet werden.", 0, $TIP_ICONASTERISK)

		Case $Button3
			open()




	EndSwitch
WEnd

Func decrypt()
	Run($path2USBSecure)
EndFunc

Func encrypt()
	Run($path2USBSecure_encrypt)
EndFunc

Func open()
	$lw = getDrive()
	;==>Check routine, only for Debuging**** MsgBox(0, "", $path2Explorer &" " &$lw)
	Run($path2Explorer &" " &$lw)
EndFunc

Func getDrive($label = "Encrypted")
    $var = DriveGetDrive( "all")
    If Not @error Then
        For $i = 0 To $var[0]
            If DriveGetLabel($var[$i] & "\") = $label Then
                Return $var[$i]
			EndIf
        Next
    EndIf
EndFunc  ;==>getDrive
