ist ein kleines Programm um TrueCrypt Container/Laufwerke komfortabel einzubinden oder zu trennen.
Es läuft wie der Name schon sagt im Systray.
Eigentlich wollte ich bloß ein kleines Script basteln, das mir das einbinden von TrueCrypt Container/Laufwerken erleichtert.
Ist dann aber ein bisschen mehr geworden.
Schaut es euch einmal an, vielleicht könnt ihr es ja sogar gebrauchen.
Erstellt mit : AutoIt3.2.12.1
Was kann es:
- TrueCrypt Container/Laufwerke einbinden / trennen
- Automounten von TrueCrypt Container/Laufwerke - Passwort abfragen:
- Programmstart mit kompletten Passwort , einem Teil vom Passwort, oder ohne Passwort
- Passwort kann mit einer Verknüpfung übergeben werden, oder ein Teil davon
- Standard Passwort Abfrage für das einbinden von TrueCrypt Containern / Laufwerken
- oder Abfrage für - TrueCrypt Container / Laufwerk - Passwort
- Sicherheit
- Passwörter werden auf einem USB-Stick in einem TrueCrypt Container gespeichert
- USB Stick kann ständig auf Existenz überprüft werden.
Wenn nicht mehr eingesteckt werden ALLE TrueCrypt Container / Laufwerke getrennt,
und das Programm beendet.
- Der TrueCrypt Container mit den Passwörtern kann aber auch auf der HDD gespeichert
werden, trotzdem kann die Existenz eines USB Sticks überprüft werden.
- Überprüfung der Usernamen und oder der MAC-Adressen. Wenn das eingetragene
Benutzerprofil nicht vorhanden und angemeldet ist, startet das Programm nicht.
- Um Einstellungen zu verändern braucht man das Passwort vom dem TrueCrypt
Container, in dem die Passwörter gespeichert sind.
- Es wird eine Log-Datei angelegt in dem alle Zugriffe auf das Programm gespeichert
werden. Falsche Passwörter werden Dokumentiert.
- Programme starten, auch mit Parametern
- Explorerfenster in bestimmten Verzeichnis öffnen
- Menü-Einträge können selbst benannt, hinzugefügt oder gelöscht werden
- Es können beliebig viele Laufwerke/ Container hinzugefügt werden
Wie funktionierts
Als erstes wird ein TrueCrypt Container erstellt (Name : KeyContainer ,
Größe : so klein wie möglich) , in dem die eine Ini Datei gespeichert wird.
Ich nenne sie mal KeyIni, in der die Passwörter für die TrueCrypt-Laufwerke
und andere Parameter gespeichert werden. Dieser sollte auf einem USB-Stick
gespeichert werden, muss man aber nicht.
Jetzt wird ein neuer Ordner (Name: TCTrayMenue) erstellt.
In diesem Ordner wird die TCTrayMenu.exe, TCTrayOp.exe, TCTrayMenu.ini
gespeichert.
Vor dem ersten Start sollte man TCTrayOp.exe ausführen um die Grundeistellungen
in die TCTrayMenu.ini einzutragen.
TCTrayOp.exe ist nur eine Oberfläche um die 2 Ini Dateien zu bearbeiten.
Spoiler anzeigen
#cs********************************************************************************************************************************************
AutoIt Version: 3.2.12.1
Author: Bernd Krüger
TCTrayMenue v 1.0
Script Function:
TrueCrypt Container/Laufwerke einbinden und Trennen
Programme starten
Explorer Fenster öffnen
Datum 2.11.2008
Der Author übernimmt keine Haftung für Schäden
#ce********************************************************************************************************************************************
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=E:\TCtrayMenue.ico
#AutoIt3Wrapper_Outfile=TCTrayMenu.exe
#AutoIt3Wrapper_Res_Description=TCTrayMenu - TrueCrypt Loader
#AutoIt3Wrapper_Res_Fileversion=1.0.0.1
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=Bernd Krüger
#AutoIt3Wrapper_Res_Language=1031
#AutoIt3Wrapper_Au3Check_Stop_OnWarning=y
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/striponly /Beta /sci 0
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstants.au3>
#include <Constants.au3>
#include <Array.au3>
#include <Misc.au3>
#include <String.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <ListviewConstants.au3>
#include <file.au3>
Opt("TrayMenuMode", 1)
[/autoit] [autoit][/autoit] [autoit]If _Singleton("TCTrayMenu.exe", 1) = 0 Then
MsgBox(0, "Warning", "TCTrayMenu is already running")
Exit
EndIf
Global $TrueCrypt_Pfad, $Alle_LWB, $Name_TC_Key_vol, $LW_TCTRini
Global $not_exit
Global $LWB_TC_Vol, $TC_Vol, $m_eintrag, $msg_info
Global $Finde_LWB_KeyIni, $IniReadSection_TC_Volume
Global $Stick_einbinden, $Bev_LWB_Vol, $lw_explorer_start
Global $lw_device, $device_pfad, $untermenue_value, $LW_Name
Global $LW_B, $explorer_auto, $row, $reihe, $sSerial
Global $spalte, $LW_Auto, $Stick_ID, $opt, $lw_opt
Global $mount, $unmount, $Array_Alle_LWB
Global $run, $run_expl, $run_prog, $run_programme, $option
Global $PASSWD1, $PASSWD2
Global $menue[110][20], $LW_Optionen[25][14], $menu_eintrag[20][4]
Global Const $MIM_APPLYTOSUBMENUS = 0x80000000
Global Const $MIM_BACKGROUND = 0x00000002
Global $stick_entfernt = 0
Global $cmdEnde_Liste_LW, $guiLW_Liste
Global $sSerial = 0
TraySetToolTip("TCTrayMenue - TrueCrypt Volumes mounten")
If $menue[109][0] <> "ok" Then
_Menueeintraege_erstellen()
EndIf
;-------------------- Menüeinträge ---------------------------------------------------------
Func _Menueeintraege_erstellen()
Local $e, $h, $j, $k, $i
$LW_TCTRini = @ScriptDir & "\TCTrayMenu.ini"
If UBound($CmdLine) > 1 Then $menue[28][0] = 1
If UBound($CmdLine) > 2 Then $LW_TCTRini = $CmdLine[2] & ":\TCTrayMenu.ini"
;#################################################################################################################################
$menue[0][0] = IniRead($LW_TCTRini, "Optionen", "TrueCrypt_Pfad", @ProgramFilesDir & "\TrueCrypt\TrueCrypt.exe")
$menue[1][0] = "C D E F G H I J K L M N O P Q R S T U V W X Y Z"
$menue[2][0] = IniRead($LW_TCTRini, "Optionen", "Bevorzugte_LWB_TC_Vol", " V W X Y Z")
$menue[3][0] = IniRead($LW_TCTRini, "Optionen", "LW_Name_TC_Key_Vol", "TC-KEY-VOL")
$menue[5][0] = StringStripWS(IniRead($LW_TCTRini, "Optionen", "Name_KeyIni", "KeyIni.ini"), 3)
$menue[6][0] = IniRead($LW_TCTRini, "Optionen", "LW_Buchstabe_TC_Key_Vol", "S") & ":\" & $menue[5][0]
$menue[7][0] = StringStripWS(IniRead($LW_TCTRini, "Optionen", "Trennen bestaetigen", "n"), 3)
$menue[8][0] = IniRead($LW_TCTRini, "Optionen", "LW_Buchstabe_TC_Key_Vol", "S")
$menue[9][0] = IniRead($LW_TCTRini, "Optionen", "USB_Key_STICK", "Schlüssel Container einbinden")
$menue[10][0] = IniRead($LW_TCTRini, "Optionen", "Explorer_Automount", "n")
$menue[11][0] = IniRead($LW_TCTRini, "Optionen", "USB_STICK_ID", "Optionen")
$menue[13][0] = IniRead($LW_TCTRini, "Optionen", "Menue_Farben", "0xFFFFEd 0xE6FFFF 0xCCCCFF 0x0C0FEA 0xFFFFEA 0xFFEAFF 0xCCCCFF 0x000CFF")
$menue[23][0] = IniRead($LW_TCTRini, "Optionen", "Pfad_TC_Key_Vol", "")
$menue[24][0] = IniRead($LW_TCTRini, "Optionen", "Key_Container_auf_HDD", "")
$menue[25][0] = IniRead($LW_TCTRini, "Optionen", "PASSWD_fuer_Key_Container", "")
$menue[26][0] = IniRead($LW_TCTRini, "Optionen", "PASSWD1_fuer_Key_Container", "")
$menue[27][0] = IniRead($LW_TCTRini, "Optionen", "PASSWD2_fuer_Key_Container", "")
$menue[29][0] = IniRead($LW_TCTRini, "Optionen", "PNPDeviceID", "")
$menue[36][0] = IniRead($LW_TCTRini, "Optionen", "Sound", "j")
$sSerial = IniRead($LW_TCTRini, "Optionen", "Serien Nummer", "0")
$Array_Alle_LWB = StringSplit($menue[1][0], " ")
Local $mFarben = StringSplit($menue[13][0], " ")
If Not FileExists($menue[6][0]) Then
$lw_opt = "rm"
_TCKey_Container_einbinden($lw_opt)
EndIf
$Stick_ID = TrayCreateItem("Optionen")
$Stick_einbinden = TrayCreateItem($menue[9][0])
$not_exit = TrayCreateItem("Ende")
$menue[4][0] = IniRead($menue[6][0], "Device", "TC_Key_Vol_nach_Programmstart_trennen", "n")
$menue[14][0] = IniRead($menue[6][0], "Device", "Bei_Programm_Ende_trennen", "n")
$menue[15][0] = IniRead($menue[6][0], "Device", "TrueCrypt_trennen_erzwingen", "n")
$menue[16][0] = IniRead($menue[6][0], "Device", "Device_Seriennummer", "")
$menue[17][0] = IniRead($menue[6][0], "Device", "Trennen_wenn_kein_USBStick", "j")
$menue[18][0] = IniRead($menue[6][0], "Device", "Aktualisierungs_Zeit", "5000")
$menue[19][0] = IniRead($menue[6][0], "Device", "Zeit_bis_trennen", "15")
$menue[21][0] = IniRead($menue[6][0], "PassWD", "Password", "")
$menue[22][0] = IniRead($menue[6][0], "Device", "PassAbfrage_vor_einbinden", "n")
$menue[32][0] = IniRead($menue[6][0], "Device", "USBAbfrage_vor_einbinden", "n")
$menue[33][0] = IniRead($menue[6][0], "Device", "MacAbfrage_vor_einbinden", "n")
$menue[34][0] = IniRead($menue[6][0], "Device", "UserAbfrage_vor_einbinden", "n")
$menue[35][0] = IniRead($menue[6][0], "Device", "Passwort_anzeigen", "n")
If $menue[32][0] <> "j" Then $menue[17][0] = "n"
;#################################################################################################################################
If FileExists($menue[6][0]) Then
Dim $IniReadSection_TC_Volume = IniReadSection($menue[6][0], "TC-Volumes")
$menue[20][0] = UBound($IniReadSection_TC_Volume) - 1
Dim $m_eintrag = IniReadSection($menue[6][0], "HauptMenue")
Dim $msg_info = IniRead($menue[6][0], "MSGBOX_Info", "text1", "")
If Not _zulassung() Then
MsgBox(32, "++++ Vergiss Es +++++", "Das war wohl nichts!!" & @CRLF & @CRLF & @CRLF, 5)
Exit
EndIf
$e = 1
For $e = 1 To UBound($IniReadSection_TC_Volume) - 1
$LW_Optionen[$e][0] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "Pfad", "")
$LW_Optionen[$e][1] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "LaufwerksBuchstabe", "")
$LW_Optionen[$e][2] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "Laufwerksname", "")
$LW_Optionen[$e][3] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "optionen", "")
$LW_Optionen[$e][4] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "Passwort", "")
$LW_Optionen[$e][5] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "Schluesseldatei0", "")
$LW_Optionen[$e][6] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "Automount", "")
$LW_Optionen[$e][7] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "Explorer starten", "")
$LW_Optionen[$e][8] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "Serien Nummer", "")
$LW_Optionen[$e][9] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "USB-HDD", "")
$LW_Optionen[$e][11] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "Partition", "")
$LW_Optionen[$e][12] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "USB Serial", "")
$LW_Optionen[$e][13] = IniRead($menue[6][0], $IniReadSection_TC_Volume[$e][1], "PassAbfrage_vor_einbinden", "j")
$LW_Optionen[$e][10] = "INVALID"
Next
If IsArray($m_eintrag) Then
$h = 1
$i = 0
$j = 1
$k = 0
For $i = 1 To UBound($m_eintrag) - 1
If $m_eintrag[$i][0] = "" Then ExitLoop
$eintrag = StringSplit($m_eintrag[$i][1], ",")
$menu_eintrag[$i][1] = StringStripWS($eintrag[1], 3)
If UBound($eintrag) - 1 > 1 Then $menu_eintrag[$i][2] = StringStripWS($eintrag[2],
If UBound($eintrag) - 1 > 2 Then $menu_eintrag[$i][3] = StringStripWS($eintrag[3],
If UBound($eintrag) = 3 Then $menu_eintrag[$i][2] = $eintrag[2]
Select
Case $menu_eintrag[$i][2] = "" ;Einträge im Hauptmenu ( TrayCreateItem kein Untermenu)
If $menu_eintrag[$i][1] = "Trennlinie" Then
$menue[1][$i] = TrayCreateItem("")
Else
$menue[0][$i] = $menu_eintrag[$i][3]
$menue[1][$i] = TrayCreateItem($menu_eintrag[$i][1])
$menue[2][$i] = $menu_eintrag[$i][1]
$menue[3][$i] = $menu_eintrag[$i][2]
EndIf
Case $menu_eintrag[$i][2] <> "" ; Einträge im Untermenü
$menue[0][$i] = $menu_eintrag[$i][3]
$menue[2][$i] = $menu_eintrag[$i][1]
$menue[3][$i] = $menu_eintrag[$i][2]
If $menu_eintrag[$i][1] = "Trennlinie" Then
$menue[1][$i] = TrayCreateItem("")
Else
$menue[1][$i] = TrayCreateMenu($menue[2][$i]) ; Menüentrag erstellen
EndIf
$e = 0
$f = 4
$j = $f + 35
$k = $f + 70
$untermenu = IniReadSection($menue[6][0], $menu_eintrag[$i][2])
$menue[$f][$i] = TrayCreateItem("", $menue[1][$i])
For $e = 1 To UBound($untermenu) - 1
$unterm = StringSplit($untermenu[$e][1], ",")
$untermenue = StringStripWS($unterm[1], 3)
If $unterm[0] > 1 Then $untermenue_value = StringStripWS($unterm[2], 3)
If $unterm[0] > 2 Then $untermenue_value1 = StringStripWS($unterm[3], 3)
If $untermenue = "Trennlinie" Then
$menue[$f][$i] = TrayCreateItem("", $menue[1][$i])
Else
$menue[$f][$i] = TrayCreateItem($untermenue, $menue[1][$i])
$menue[$j][$i] = $untermenue
$menue[$k][$i] = $untermenue_value
EndIf
$f = $f + 1
$j = $j + 1
$k = $k + 1
Next
$menue[$f][$i] = TrayCreateItem("", $menue[1][$i])
EndSelect
Next
_Spalte_mount()
If $mFarben[1] <> "" Then
SetMenuColor(0, StringStripWS($mFarben[1], 3)) ; BGR color value, '0' means the tray context menu handle itself
If UBound($mFarben) > 2 And IsNumber($menue[1][$mount]) Then SetMenuColor($menue[1][$mount], StringStripWS($mFarben[2], 3)); BGR color value
If UBound($mFarben) > 3 And IsNumber($menue[1][$unmount]) Then SetMenuColor($menue[1][$unmount], StringStripWS($mFarben[3], 3)); BGR color value
If UBound($mFarben) > 4 And IsNumber($menue[1][$run_programme]) Then SetMenuColor($menue[1][$run_programme], StringStripWS($mFarben[4], 3)); BGR color value
If UBound($mFarben) > 5 And IsNumber($menue[1][$run_expl]) Then SetMenuColor($menue[1][$run_expl], StringStripWS($mFarben[5], 3)); BGR color value
If UBound($mFarben) > 6 And IsNumber($menue[1][$option]) Then SetMenuColor($menue[1][$option], StringStripWS($mFarben[6], 3)); BGR color value
If UBound($mFarben) > 7 And IsNumber($menue[1][$run]) Then SetMenuColor($menue[1][$run], StringStripWS($mFarben[7], 3)); BGR color value
If UBound($mFarben) > 8 And IsNumber($menue[1][$run_prog]) Then SetMenuColor($menue[1][$run_prog], StringStripWS($mFarben[8], 3)); BGR color value
EndIf
TrayItemDelete($Stick_ID)
TrayItemDelete($Stick_einbinden)
TrayItemDelete($not_exit)
EndIf
_LW_Option()
If $menue[109][0] <> "ok" Then _Automount()
$menue[109][0] = "ok"
If $menue[4][0] = "j" Then RunWait($menue[0][0] & " /q /d " & $menue[8][0] & " /b /f")
EndIf
_adlib_start_ende()
_hakenan()
EndFunc ;==>_Menueeintraege_erstellen
;-------------------- Menüeinträge ---------------------------------------------------------
TraySetState()
TraySetClick(18)
While 1
$msg = TrayGetMsg()
If $msg > 0 Then
$h = 1
$i = 0
Dim $go = ""
For $i = 1 To UBound($menue, 2) - 1
For $k = 1 To UBound($menue) - 1
If $menue[$k][$i] = $msg Then
$go = ""
$go1 = ""
$reihe = 0
$row = 0
$spalte = 0
$go = $menue[0][$i]
$go1 = $menue[3][$i];
$reihe = $k - 3
$row = $k
$spalte = $i
ExitLoop 2
EndIf
Next
Next
Select
Case $msg = $Stick_einbinden
$lw_opt = "ro"
_menue_eintrage_entfernen()
_Menueeintraege_erstellen()
_Automount()
Case $msg = $Stick_ID
Run("TCTrayOp.exe")
Case $msg = $not_exit
ExitLoop
Case $go = "option"
$opt = $menue[$row + 70][$spalte]
Select
Case $opt = "Einstellungen"
_LW_Option()
If DriveStatus($menue[8][0] & ":\") <> "INVALID" Then RunWait($menue[0][0] & " /q /d " & $menue[8][0] & " /b /f")
Sleep(100)
$lw_opt = "rm"
_TCKey_Container_einbinden($lw_opt)
_LW_Option()
_hakenan()
_FileWriteLog($menue[8][0] & ":\my.log", " TCKeyIni - zuletzt als RW gemountet unter ( " & $menue[8][0] & ":\ )")
Run("TCTrayOp.exe")
Case $opt = "_SerienNummerFinden"
_SerienNummerFinden()
Case $opt = "Info"
_info()
Case StringRight($opt, 3) = "ini"
If $opt = "TCKeyini" Then $opt = $menue[6][0]
ShellExecute($opt)
Case StringRight($opt, 3) = "txt"
ShellExecute($opt)
Case StringRight($opt, 3) = "log"
ShellExecute($opt)
EndSelect
Case $go = "run"
$Prog = $menue[$row + 70][$spalte]
Run($Prog)
Case $go = "run_prog"
$Prog = $menue[$row + 70][$spalte]
Run($Prog)
Case $go = "run_programme"
$Prog = $menue[$row + 70][$spalte]
Run($Prog)
Case $go = "run_explorer"
$Prog = $menue[$row + 70][$spalte]
Run($Prog)
Case $go = "msgbox"
_info()
Case $go = "aktualisieren"
_menue_eintrage_entfernen()
_Menueeintraege_erstellen()
Case $go = "automount"
$LW_Auto = "automount"
$explorer_auto = $menue[10][0]
_Automount()
Case $go = "mount"
$TC_Vol = $menue[$row + 35][$spalte]
If $TC_Vol <> "" Then
If $TC_Vol = $menue[3][0] Then
$lw_opt = "rm"
_TCKey_Container_einbinden($lw_opt)
_LW_Option()
_hakenan()
_FileWriteLog($menue[8][0] & ":\my.log", " TCKeyIni - zuletzt als RW gemountet unter ( " & $menue[8][0] & ":\ )")
Else
$explorer_auto = "j"
MountVolumes()
EndIf
EndIf
Case $go = "unmount"
_LW_Trennen()
Case $go = "exit"
If _beenden($msg) = "exit" Then ExitLoop
Case $go = "alle_trennen"
Run($menue[0][0] & " /dismount /force /quit /silent ")
Exit
;----------- Listview Laufwerke --------------------------------------------
Case $msg = $cmdEnde_Liste_LW
GUISetState(@SW_HIDE, $guiLW_Liste)
EndSelect
EndIf
WEnd
Exit
Func _Finde_LW()
$LW_Name = StringLower(StringStripWS($LW_Optionen[$reihe][2], 3))
$i = 0
Do
If $i = UBound($Array_Alle_LWB) - 1 Then ExitLoop
$i = $i + 1
Until StringStripWS(DriveGetSerial($Array_Alle_LWB[$i] & ":\"), 3) = StringStripWS($LW_Optionen[$reihe][8], 3)
If StringStripWS(DriveGetSerial($Array_Alle_LWB[$i] & ":\"), 3) = StringStripWS($LW_Optionen[$reihe][8], 3) Then
$LWB_TC_Vol = $Array_Alle_LWB[$i]
Else
$LWB_TC_Vol = "NotFound"
EndIf
Return $LWB_TC_Vol
EndFunc ;==>_Finde_LW
Func _LW_Trennen()
Local $drivegetserial
If $LW_Optionen[$reihe][10] <> "INVALID" Then $drivegetserial = DriveGetSerial($LW_Optionen[$reihe][10] & ":\")
If $drivegetserial <> $LW_Optionen[$reihe][8] Then ;--> $LW_Optionen[$row][8] Seriennummer in der KeyIni
If _Finde_LW() = "NotFound" Then
TrayTip("++++ Volume Trennen +++++", "TrueCrypt Volume - " & $LW_Name & " - war nicht eingebunden.", 1)
Else
_LW_Trennen1()
EndIf
Else
If $LW_Optionen[$reihe][10] <> "INVALID" Then
$LWB_TC_Vol = $LW_Optionen[$reihe][10]
_LW_Trennen1()
Else
TrayTip("++++ Volume Trennen +++++", "TrueCrypt Volume - " & $LW_Name & " - war nicht eingebunden.", 1)
EndIf
EndIf
EndFunc ;==>_LW_Trennen
Func _LW_Trennen1()
Local $trennen = ""
$LW_Name = StringStripWS($LW_Optionen[$reihe][2], 3)
If $menue[15][0] = "j" Then $trennen = "/f"
If $menue[7][0] = "j" Then
$trenn = MsgBox(0x40044, "++++ Trennen +++++", "Laufwerk: - " & StringUpper($LW_Name) & " (" & StringUpper($LWB_TC_Vol) & ":) - Trennen?")
If $trenn = 6 Then
If DriveGetLabel($LWB_TC_Vol & ":\") = "TCTrayMenue" And $menue[28][0] = 1 Then $menue[28][0] = 0 ;nur wenn TCTraymenu im Container verschlüsselt ist
RunWait($menue[0][0] & " /q /d " & $LWB_TC_Vol & " /b " & $trennen)
Sleep(500)
If DriveStatus($LWB_TC_Vol & ":\") = "INVALID" Then TrayTip("++++ Trennen +++++", "Laufwerk: - " & StringUpper($LW_Name) & " (" & StringUpper($LWB_TC_Vol) & ":) - ist getrennt!", 1)
EndIf
Else
If DriveGetLabel($LWB_TC_Vol & ":\") = "TCTrayMenue" And $menue[28][0] = 1 Then $menue[28][0] = 0 ;nur wenn TCTraymenu im Container verschlüsselt ist
RunWait($menue[0][0] & " /q /d " & $LWB_TC_Vol & " /b " & $trennen)
Sleep(500)
If DriveStatus($LWB_TC_Vol & ":\") = "INVALID" Then TrayTip("++++ Trennen +++++", "Laufwerk: - " & StringUpper($LW_Name) & " (" & StringUpper($LWB_TC_Vol) & ":) - ist getrennt!", 1)
EndIf
_hakenan()
EndFunc ;==>_LW_Trennen1
;---------Func _hakenan() vorhandene Laufwerke finden und Haken setzen -------------------------------------------------------------------
;----- Spalteen finden ----------------
Func _Spalte_mount()
Local $i = 0
For $i = 1 To UBound($menue, 2) - 1
If $menue[0][$i] = "mount" Then $mount = $i
If $menue[0][$i] = "unmount" Then $unmount = $i
If $menue[0][$i] = "run_explorer" Then $run_expl = $i
If $menue[0][$i] = "run" Then $run = $i
If $menue[0][$i] = "run_prog" Then $run_prog = $i
If $menue[0][$i] = "run_programme" Then $run_programme = $i
If $menue[0][$i] = "option" Then $option = $i
Next
EndFunc ;==>_Spalte_mount
Func _hakenan()
Local $LW_o
_Spalte_mount()
$lw_section = ""
;-------- alle Haken entfernen ----------------------------
$i = 0
$e = 0
For $e = 1 To UBound($IniReadSection_TC_Volume) - 1
TrayItemSetState($menue[$e + 3][$mount], $TRAY_UNCHECKED)
TrayItemSetState($menue[$e + 3][$unmount], $TRAY_UNCHECKED)
TrayItemSetText($menue[$e + 3][$mount], $menue[$e + 38][$mount])
TrayItemSetText($menue[$e + 3][$unmount], $menue[$e + 38][$unmount])
Next
;---------vorhandene Laufwerke finden und Haken setzen -----
$e = 1
$i = 0
For $i = 0 To UBound($Array_Alle_LWB) - 1
For $e = 1 To UBound($IniReadSection_TC_Volume) - 1
$drivegetserial = DriveGetSerial($Array_Alle_LWB[$i] & ":\")
If $drivegetserial = $LW_Optionen[$e][8] Then
If $LW_Optionen[$e][3] = "ro" Then
$LW_o = "ReadOnly"
Else
$LW_o = "RW"
EndIf
TrayItemSetState($menue[$e + 3][$mount], $TRAY_CHECKED)
TrayItemSetText($menue[$e + 3][$mount], $menue[$e + 38][$mount] & " (" & StringUpper($Array_Alle_LWB[$i]) & ":\) " & $LW_o)
TrayItemSetText($menue[$e + 3][$unmount], $menue[$e + 38][$unmount] & " (" & StringUpper($Array_Alle_LWB[$i]) & ":\) " & $LW_o)
TrayItemSetState($menue[$e + 3][$unmount], $TRAY_CHECKED)
$LW_Optionen[$e][1] = $Array_Alle_LWB[$i]
EndIf
Next
Next
EndFunc ;==>_hakenan
;----- alle Menue - Untermenüeinträge entfernen -----------------------------------------------------------------------------------
Func _menue_eintrage_entfernen()
$e = 1
$i = 0
For $i = 0 To UBound($menue, 2) - 1
For $e = 1 To UBound($menue) - 1
TrayItemDelete($menue[$e][$i])
Next
Next
TrayItemDelete($Stick_ID)
TrayItemDelete($Stick_einbinden)
TrayItemDelete($not_exit)
EndFunc ;==>_menue_eintrage_entfernen
Func _Finde_KeyIni()
$Finde_LWB_KeyIni = $menue[8][0]
$LWB_Key_Vol = $menue[8][0]
$i = 1
If FileExists($menue[8][0] & ":\" & $menue[5][0]) Then Return $Finde_LWB_KeyIni
While Not FileExists($menue[8][0] & ":\" & $menue[5][0]);==> $menue[8][0] = LW_Buchstabe_TC_Key_Vol ; $menue[5][0]= $Name_KeyIni
If FileExists($Array_Alle_LWB[$i] & ":\" & $menue[5][0]) Then
$menue[6][0] = $Array_Alle_LWB[$i] & ":\" & $menue[5][0]
$menue[8][0] = $Array_Alle_LWB[$i]
$Finde_LWB_KeyIni = $Array_Alle_LWB[$i]
ExitLoop
EndIf
If DriveGetLabel($Array_Alle_LWB[$i] & ":\") = $menue[3][0] Then
$Finde_LWB_KeyIni = $Array_Alle_LWB[$i]
$menue[8][0] = $Array_Alle_LWB[$i]
ExitLoop
EndIf
$i = $i + 1
If $i = UBound($Array_Alle_LWB) Then
$Finde_LWB_KeyIni = 0
ExitLoop
EndIf
WEnd
$sSerial1 = DriveGetSerial($Finde_LWB_KeyIni & ":\")
If $sSerial1 = $sSerial And $sSerial1 <> 0 And Not FileExists($menue[8][0] & ":\" & $menue[5][0]) Then
MsgBox(0x40 + 0x40000, 'KeyIni nicht gefunden', @LF & 'Laufwerk ' & $menue[8][0] & ':\ ist richtig eingebunden.' & @LF & 'Seriennummer ist: ' & $sSerial1 & @LF & @LF & 'Datei ist NICHT vorhanden: ' & $menue[8][0] & ":\" & $menue[5][0] & @LF & @LF & 'Überprüfe den Pfad und den Dateinamen in der TCTrayMenu.ini !' & @LF & 'Programm wird beendent.' & @LF & 'Explorer ' & $menue[3][0] & '( ' & $menue[8][0] & ':\ )' & @LF & 'und Einstellungen werden geöffnet.') ;### Debug MSGBOX
RunWait("explorer.exe " & $menue[8][0] & ":\")
RunWait("TCTrayOp.exe")
Exit
EndIf
Return $Finde_LWB_KeyIni
EndFunc ;==>_Finde_KeyIni
;-- Einen freien Laufwerksbuchstaben, aus einer Auswahl in der TCTrayMenue.ini ( Bevorzugte_LWB_TC_Vol = .. ) ,finden. -------------
Func _Bevorzugte_LWB_TC_Vol()
$Bev_LWB_Vol = StringSplit(StringStripWS($menue[2][0], 8), "")
If DriveStatus(StringStripWS($LW_Optionen[$reihe][1], 3) & ":\") <> "INVALID" Then
$i = UBound($Bev_LWB_Vol)
Do
$i = $i - 1
$LWB_TC_Vol = $Bev_LWB_Vol[$i]
If $i = 1 Then ExitLoop;UBound($Bev_LWB_Vol) - 1
Until DriveStatus($Bev_LWB_Vol[$i] & ":\") = "INVALID"
If DriveStatus($LWB_TC_Vol & ":\") = "INVALID" Then
Return $LWB_TC_Vol
Else
$i = UBound($Array_Alle_LWB)
Do
$i = $i - 1
$LWB_TC_Vol = $Array_Alle_LWB[$i]
If $i = 1 Then ExitLoop
Until DriveStatus($Array_Alle_LWB[$i] & ":\") = "INVALID"
If DriveStatus($Array_Alle_LWB[$i] & ":\") = "INVALID" Then Return $LWB_TC_Vol
EndIf
Else
$LWB_TC_Vol = StringStripWS($LW_Optionen[$reihe][1], 3)
Return $LWB_TC_Vol
EndIf
EndFunc ;==>_Bevorzugte_LWB_TC_Vol
Func MountVolumes()
Local $pfad, $beep, $sContainerLaufwerk
$LW_Name = $LW_Optionen[$reihe][2]
$lw_s0 = ""
$LW_B = _Finde_LW()
If $LW_B <> "NotFound" Then
If $menue[109][0] = "ok" Then
Run("explorer.exe " & $LW_B & ":\")
Else
Return
EndIf
Else
If $LW_Optionen[$reihe][4] <> "" Then
If $menue[109][0] = "ok" Then
If $menue[22][0] = "j" Then
$PASSWD3 = _Passwort("LW_Pass")
If $PASSWD3 <> $menue[21][0] Then
MsgBox(64, "Fehler Passworteingabe", "Passwort falsch. ")
Return
ElseIf $PASSWD3 = False Then
MsgBox(64, "Fehler Passworteingabe", "Passwort leer. ")
Return
EndIf
EndIf
Else
$PASSWD3 = $menue[21][0]
EndIf
EndIf
$LW_B = _Bevorzugte_LWB_TC_Vol()
If $LW_Optionen[$reihe][9] = "j" Then
$pfad = _Pfad_USB_HDD()
If Not $pfad Then
$pfad = "NotFound"
MsgBox(64, @ScriptLineNumber & " Einbinden fehlgeschlagen", "TrueCrypt-Partition nicht gefunden!")
Return
Else
$pfad = $device_pfad
$sContainerLaufwerk = "Das Passwort für die Verschlüsselte Festplatte:"
EndIf
Else
$pfad = $LW_Optionen[$reihe][0]
$sContainerLaufwerk = "Das Passwort für den TrueCrypt-Container:"
If Not FileExists($pfad) Then
MsgBox(64, @ScriptLineNumber & " Container Einbinden fehlgeschlagen", "Pfad zum TrueCrypt-Container nicht gefunden!")
Return
EndIf
EndIf
$pfad = " /v " & $pfad
$lw_opt = " /m " & $LW_Optionen[$reihe][3]
$PASSWD = " /p " & $LW_Optionen[$reihe][4]
If $menue[35][0] = "j" Then MsgBox(262144, 'Passwort', $sContainerLaufwerk & @LF & @LF & StringTrimLeft($pfad, 4) & @LF & @LF & "= " & $LW_Optionen[$reihe][4])
If $LW_Optionen[$reihe][5] <> "" Then $lw_s0 = " /k " & $LW_Optionen[$reihe][5]
$lw_explorer_start = ""
If $LW_Optionen[$reihe][7] = "j" And $explorer_auto = "j" And $menue[109][0] = "ok" Then $lw_explorer_start = " /e"
If $menue[109][0] = "ok" Then $beep = " /b "
RunWait($menue[0][0] & $pfad & " /q /l " & $LW_B & $PASSWD & $lw_opt & $lw_s0 & $lw_explorer_start & $beep)
If DriveStatus($LW_B & ":\") = "READY" Then
If DriveGetLabel($LW_B & ":\") <> $LW_Name Then
DriveSetLabel($LW_B & ":\", $LW_Name)
EndIf
$LW_Optionen[$reihe][10] = StringUpper($LWB_TC_Vol)
$LW_Optionen[$reihe][8] = DriveGetSerial($LWB_TC_Vol & ":")
TrayTip("++++ Alles klar +++++", @LF & "TrueCrypt-Volume: - " & StringTrimLeft($pfad, 4) & @LF & @LF & "als " & StringUpper($LW_Name) & " (" & StringUpper($LWB_TC_Vol) & ":) - erfolgreich eingebunden", 3, 1)
EndIf
EndIf
_hakenan()
EndFunc ;==>MountVolumes
Func _beenden($msg)
Local $trennen = ""
If StringStripWS($menue[15][0], 3) = "j" Then $trennen = " /force"
Local $ExitCode = StringTrimLeft($menue[$row + 70][$spalte], 5)
If $ExitCode = "" Then Return
If $ExitCode = "nurProgrammEnde" Then Exit
If $ExitCode = "exit" Then
If $menue[28][0] = 1 Then
Run($menue[0][0] & " /q /d " & StringLeft(@ScriptDir, 1) & " /b /f")
EndIf
$menue[28][0] = 0
If FileExists($menue[6][0]) Then Run($menue[0][0] & " /q /d " & $menue[8][0] & " /b /f ")
If StringStripWS($menue[14][0], 3) = "j" Then Run($menue[0][0] & " /q /d /b " & $trennen)
Return $ExitCode
ElseIf $ExitCode = "entfernen" Then
Run($menue[0][0] & " /q /d /b " & $trennen)
Run("removedrive.exe " & $menue[30][0] & ": -l -b")
Else
Run($menue[0][0] & " /q /d /b " & $trennen)
Shutdown(Number($ExitCode))
EndIf
EndFunc ;==>_beenden
Func _GetMACFromIP($sIP = @IPAddress1, $mode = 1)
Local $MAC, $MACSize
Local $i, $s, $r, $iIP
$MAC = DllStructCreate("byte[6]")
$MACSize = DllStructCreate("int")
DllStructSetData($MACSize, 1, 6)
$r = DllCall("Ws2_32.dll", "int", "inet_addr", _
"str", $sIP)
$iIP = $r[0]
$r = DllCall("iphlpapi.dll", "int", "SendARP", "int", $iIP, "int", 0, "ptr", DllStructGetPtr($MAC), "ptr", DllStructGetPtr($MACSize))
$s = ""
If $mode = 0 Then
For $i = 0 To 5
$s &= Hex(DllStructGetData($MAC, 1, $i + 1), 2)
Next
ElseIf $mode = 1 Then
For $i = 0 To 5
If $i Then $s = $s & ":"
$s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
Next
ElseIf $mode = 2 Then
For $i = 0 To 5
If $i Then $s = $s & "-"
$s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
Next
EndIf
Return $s
EndFunc ;==>_GetMACFromIP
Func _Pfad_USB_HDD()
$strComputer = "."
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")
For $objItem In $colItems
$USB_Serial = StringTrimLeft(StringTrimRight($objItem.PNPDeviceID, 2), (StringInStr($objItem.PNPDeviceID, "\", 0, 2)))
If $USB_Serial = $LW_Optionen[$reihe][12] Then
$device_pfad = "\Device\Harddisk" & StringRight($objItem.DeviceID, 1) & "\Partition" & $LW_Optionen[$reihe][11]
Return $device_pfad
ExitLoop
EndIf
Next
EndFunc ;==>_Pfad_USB_HDD
;-- TrueCrypt Volumes, die in der KeyIni Automount = j, werden eingebunden ---------------------------------------------------------
Func _Automount()
$e = 0
For $e = 1 To UBound($IniReadSection_TC_Volume) - 1
If $LW_Optionen[$e][6] = "j" Then
$TC_Vol = $LW_Optionen[$e][2]
$reihe = $e
MountVolumes()
EndIf
Next
$LW_Auto = ""
_hakenan()
EndFunc ;==>_Automount
Func _zulassung()
Local $ok = False
Local $uname = IniReadSection($menue[6][0], "User")
Local $mac_id = IniReadSection($menue[6][0], "MacAdressen")
Local $USB_Abfrage = $menue[32][0]
Local $Mac_Abfrage = $menue[33][0]
Local $User_Abfrage = $menue[34][0]
Local $i = 0
If $USB_Abfrage = "j" Then
If Not _USB_LW_DeviceID1() Then
MsgBox(16, "Fehler", "Falscher USB-Stick USB-Seriennummer stimmt nicht überein!")
Return
EndIf
EndIf
If $User_Abfrage = "j" Then
Do
If $i = UBound($uname) - 1 Then
MsgBox(32, "++++ Vergiss Es +++++", "Das war wohl nichts!!" & @CRLF & @CRLF & @CRLF, 5)
Return
EndIf
$i = $i + 1
Until @UserName = $uname[$i][1]
EndIf
If $Mac_Abfrage = "j" Then
$i = 0
$getmac = _GetMACFromIP()
Do
If $i = UBound($mac_id) - 1 Then
MsgBox(32, "++++ Vergiss Es +++++", "Das war wohl nichts!!" & @CRLF & @CRLF & @CRLF, 5)
Return
EndIf
$i = $i + 1
Until $getmac = $mac_id[$i][1]
EndIf
$ok = True
Return $ok
EndFunc ;==>_zulassung
Func _SerienNummerFinden()
$LW_Input = InputBox("TC Datenträger", "Den Laufwerksbuchstaben des Datenträgers eingeben." & @LF & @LF & " Bsp. K ( ohne :\ )", "K", '', 200, 160)
If @error Then Return
$iSerial = DriveGetSerial($LW_Input & ":\")
$iSerialNr = InputBox('TC Datenträger', 'Die Seriennummer des Datenträgers wird ''mit OK in die Zwischenablage kopiert.', $iSerial, '', 250, 160)
ClipPut($iSerialNr)
EndFunc ;==>_SerienNummerFinden
Func _USB_LW_DeviceID1()
Local $t = 0
Local $usbstor = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbstor\Enum'
Local $count = RegRead($usbstor, 'count')
For $t = 0 To $count
$SerienNr = StringTrimLeft(RegRead($usbstor, $t), StringInStr(RegRead($usbstor, $t), "\", 0, -1))
If $SerienNr = $menue[16][0] Then Return RegRead($usbstor, $t)
Next
EndFunc ;==>_USB_LW_DeviceID1
Func _LW_Option()
$e = 0
For $e = 1 To UBound($IniReadSection_TC_Volume) - 1
If $LW_Optionen[$e][2] = $menue[3][0] Then
$LW_Optionen[$e][3] = $lw_opt
EndIf
Next
Return $LW_Optionen[$e][3]
EndFunc ;==>_LW_Option
Func SetMenuColor($nMenuID, $nColor)
; Minimum OS are Windows98 and 2000
If @OSVersion = "WIN_95" Or @OSVersion = "WIN_NT4" Then Return
$hMenu = TrayItemGetHandle($nMenuID) ; Get the internal menu handle
$hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $nColor)
$hBrush = $hBrush[0]
Local $stMenuInfo = DllStructCreate("dword;dword;dword;uint;dword;dword;ptr")
DllStructSetData($stMenuInfo, 1, DllStructGetSize($stMenuInfo))
DllStructSetData($stMenuInfo, 2, BitOR($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND))
DllStructSetData($stMenuInfo, 5, $hBrush)
DllCall("user32.dll", "int", "SetMenuInfo", "hwnd", $hMenu, "ptr", DllStructGetPtr($stMenuInfo))
EndFunc ;==>SetMenuColor
Func _Stick_Ueberwachung()
If $stick_entfernt = 1 Then Return
$var = DriveGetSerial($menue[30][0] & "\")
If $var = "" Then
$message = @CRLF & "USB-Stick wurde entfernt" & @CRLF & @CRLF & "Sie haben" & @CRLF & @CRLF
$message1 = " " & @CRLF & @CRLF & "Sekunden bevor die TrueCrypt-Laufwerke getrennt werden!"
SplashTextOn("USB-Stick entfernt", $message, "300", "250", "-1", "-1", 0, "Courier New", "12", "700")
Local $z = $menue[19][0]
$stick_entfernt = 1
For $x = 1 To $menue[19][0]
$z -= 1
ControlSetText("USB-Stick entfernt", "", "Static1", $message & $z & $message1)
If $menue[36][0] = "j" Then SoundPlay("C:\Windows\Media\Windows Balloon.wav")
$var = DriveGetSerial($menue[30][0] & "\")
If Not $var Then
Sleep(1000)
Else
SplashOff()
Sleep(500)
Send("{ESC}")
MsgBox(64, "Stick gefunden", "USBKey-Stick wurde wieder gefunden.", 2)
$stick_entfernt = 0
ExitLoop
EndIf
If $x = $menue[19][0] Then
SplashOff()
RunWait($menue[0][0] & " /q /d /b /f")
Sleep(500)
MsgBox(64, "Stick entfernt", "TrueCrypt-Laufwerke wurden getrennt.", 3)
$menue[28][0] = 0
$menue[109][0] = ""
_menue_eintrage_entfernen()
$Stick_ID = TrayCreateItem("Optionen")
$Stick_einbinden = TrayCreateItem($menue[9][0])
$not_exit = TrayCreateItem("Ende")
EndIf
Next
EndIf
EndFunc ;==>_Stick_Ueberwachung
Func _adlib_start_ende()
If StringStripWS($menue[17][0], 3) = "j" Then
AdlibEnable("_Stick_Ueberwachung", $menue[18][0])
Else
AdlibDisable()
EndIf
EndFunc ;==>_adlib_start_ende
Func _info()
$ver = FileGetVersion(@ScriptDir & "\TCTrayMenu.exe")
MsgBox(64, "TCTrayMenue v" & $ver, "Programmiert von Bernd Krüger")
EndFunc ;==>_info
#Region -- KeyIni einbinden-----################################################################################################################
;###############################################################################################################################################
Func _Finde_LWB_USBStick()
$USB_Serial = $menue[29][0]
$index = ""
$strComputer = "."
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive WHERE PNPDeviceID = " & "'" & $USB_Serial & "'")
For $objItem In $colItems
$index = $objItem.Index
Next
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDiskToPartition")
For $objItem In $colItems
$LW_Index = StringLeft(StringRight($objItem.Antecedent, 16), 1)
If $LW_Index = $index Then
$LWB = StringLeft(StringRight($objItem.Dependent, 3), 2)
Return $LWB
ExitLoop
EndIf
Next
EndFunc ;==>_Finde_LWB_USBStick
Func _Passwort($wofuer)
Local $nMSG
If $LW_Auto <> "automount" Then $PASSWD2 = 0
$guiPass = GUICreate("Password Input", 350, 60, -1, -1, $WS_BORDER + $WS_POPUP)
If $wofuer = "config" Then
GUICtrlCreateLabel("--- Bitte Passwort für den Key-Container eingeben -----", 40, 4, -1, 20)
Else
GUICtrlCreateLabel("+++++ Bitte das Passwort zum einbinden der Laufwerke eingeben +++++", 10, 4, -1, 20)
EndIf
GUICtrlCreateLabel("PW:", 10, 33, -1, 20)
$PASSINPUT = GUICtrlCreateInput("", 75, 30, 160, 20, $ES_PASSWORD)
$MNTBTN = GUICtrlCreateButton("&OK", 235, 30, 50, 20)
$ESC = GUICtrlCreateButton("&ESC", 285, 30, 50, 20)
GUISetState()
While 1
$nMSG = GUIGetMsg()
Select
Case $nMSG = $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE, $guiPass)
Return
Case $nMSG = $ESC
GUISetState(@SW_HIDE, $guiPass)
Return
Case $nMSG = $MNTBTN Or _IsPressed("0D", 'user32.dll')
$PASSWD2 = GUICtrlRead($PASSINPUT)
GUISetState(@SW_HIDE, $guiPass)
Return $PASSWD2
EndSelect
WEnd
EndFunc ;==>_Passwort
Func _TCKey_Container_einbinden($lw_opt)
Local $LWB_USB_Stick
$PASSWD2 = False
If _Finde_KeyIni() Then RunWait($menue[0][0] & " /q /d " & $menue[8][0] & " /b /f")
If DriveStatus($menue[8][0] & ":\") <> "READY" Then
If $menue[32][0] = "j" Then $menue[30][0] = _Finde_LWB_USBStick()
$Name_TC_Key_vol = $menue[3][0]
$Pfad_TC_V = $menue[23][0]
$Pfad_TC_Vol = StringTrimLeft($Pfad_TC_V, StringInStr($Pfad_TC_V, "\"))
$ckbHDD = $menue[24][0]
$PASs = $menue[25][0]
$PASSWD1 = $menue[26][0]
If UBound($CmdLine) > 1 Then $PASSWD2 = $CmdLine[1]
If $menue[27][0] <> "" Then $PASSWD2 = $menue[27][0]
Select
Case $PASSWD2 <> False
$PASSWD = "/p " & $PASSWD1 & $PASSWD2
Case $PASSWD2 = False
$PASSWD2 = _Passwort("config")
If Not $PASSWD2 Then Return
$PASSWD = "/p " & $PASSWD1 & $PASSWD2
EndSelect
$Freier_LWB = _Bevor_LWB_TCKey_Vol()
If $ckbHDD = "j" Then
$Pfad_TC = $Pfad_TC_V
Else
If $menue[32][0] <> "j" Then $menue[30][0] = _Finde_LWB_USBStick()
;~ $LWB_USB_Stick = _Finde_LWB_USBStick()
$Pfad_TC = $menue[30][0] & "\" & $Pfad_TC_Vol
EndIf
If FileExists($Pfad_TC) Then
If $PASs > 3 Or $PASs = "" Then
MsgBox(16, "Achtung", "Passwort wurde " & $PASs - 1 & " mal falsch eingegben, komplettes Passwort notwendig.")
$menue[26][0] = 0
IniWrite($LW_TCTRini, "Optionen", "PASSWD_fuer_Key_Container", 1)
IniWrite($LW_TCTRini, "Optionen", "PASSWD1_fuer_Key_Container", 0)
IniWrite($LW_TCTRini, "Optionen", "PASSWD2_fuer_Key_Container", "")
_FileWriteLog(@ScriptDir & "\TCTrayMenu.log", " !!Achtung!! - 3x Falsches Passwort für TCKeyIni eingegeben.", 1)
$PASSWD = ""
EndIf
If $menue[35][0] = "j" Then MsgBox(262144, 'Passwort', 'Das Passwort für :' & @LF & @LF & $Pfad_TC & ' ist: ' & @LF & @LF & $PASSWD1 & $PASSWD2)
RunWait($menue[0][0] & " /v " & $Pfad_TC & " /l " & $Freier_LWB & " /c n /m " & $lw_opt & " /h n " & $PASSWD & " /q /b ")
RunWait($menue[0][0] & " /q /s /w")
Else
MsgBox(0x40 + 0x40000, 'Key-Container einbinden', @LF & 'TrueCrypt-Container nicht gefunden' & @LF & @LF & 'Datei existiert nicht: ' & $Pfad_TC & @LF & @LF & 'Überprüfe den Pfad in der TCTrayMenue.ini !') ;### Debug MSGBOX
Exit
EndIf
DriveSetLabel($Freier_LWB & ":\", $Name_TC_Key_vol)
If DriveStatus($Freier_LWB & ":\") <> "READY" Then
$menue[25][0] = $PASs + 1
IniWrite($LW_TCTRini, "Optionen", "PASSWD_fuer_Key_Container", $PASs + 1)
_FileWriteLog(@ScriptDir & "\TCTrayMenu.log", " Fehler - Falsches Passwort für TCKeyIni eingegeben ( " & $PASSWD2 & " )", 1)
Else
$menue[25][0] = 1
$sSerial = DriveGetSerial($Freier_LWB & ":\")
IniWrite($LW_TCTRini, "Optionen", "PASSWD_fuer_Key_Container", 1)
IniWrite($LW_TCTRini, "Optionen", "LW_B_erhalten_TC_Key_Vol", $Freier_LWB)
If FileExists($Freier_LWB & ":\LWErkennung") Then
$hinweis = "normal"
Else
$hinweis = "OK"
EndIf
_FileWriteLog(@ScriptDir & "\TCTrayMenu.log", " Hinweis - TCKeyIni erfolgreich eingebunden ( " & $hinweis & " )", 1)
TrayTip("++++ Alles klar +++++", $Name_TC_Key_vol & "( " & $Freier_LWB & " ) :\" & " - erfolgreich eingebunden.", 8, 1)
EndIf
EndIf
EndFunc ;==>_TCKey_Container_einbinden
Func _Bevor_LWB_TCKey_Vol()
$LWB_TC_Key = $menue[8][0]
$LWB_TCV = $menue[2][0]
If DriveStatus($LWB_TC_Key & ":\") <> "INVALID" Then
$LWB_TC_V = StringSplit(StringStripWS($LWB_TCV, 8), "")
$i = 0
Do
$i = $i + 1
$LWB_TC_Vol = $LWB_TC_V[$i]
Until DriveStatus($LWB_TC_V[$i] & ":\") <> "READY" And $LWB_TC_V[$i] <> "o"
Return $LWB_TC_Vol
Else
Return $LWB_TC_Key
EndIf
EndFunc ;==>_Bevor_LWB_TCKey_Vol
#EndRegion -- KeyIni einbinden-----################################################################################################################
Download:
Im Archiv sind die Scripte, ein Beispiel Container, die Exe Dateien und Beispiel Ini's.
au3toolkit.jar