Hallo,
ich hab da mal wieder zwei kleine Probs bei meiner automatischen TrueCrypt Volume Einrichtung. Das Script läuft soweit fehlerfrei durch und legt ein mit standardwerten vordefiniertes TrueCrypt volume automatisch an. Nur die Größe des Volumes soll der user über ein inputfield selbst bestimmen können. Das Problem ist das der Wert in dem Inputfield nicht mit der Maus markiert werden kann. Es ist zwar editierbar also der Cursor steht im Textfeld und ich kann was reinschreiben, nur wenn man einmal Tab gedrückt hat, kommt man auch nur wieder mit Tabs in das Textfeld zurück, ich kann also nicht mit der Maus rein klicken und den Wert bearbeiten. Hab es schon mit GuiCtrlSetState(-1, $GUI_ENABLE) probiert, aber das hat nichts geändert.
Hab einfach mal den ganzen code reingestellt, der relevante Teil kommt erst ab Zeile 99
Als zweites suche ich eine Funktion ähnlich der BlockInput(), die aber nur Eingaben auf den TrueCrypt Configuration Wizard verbietet und dem user nebenbei das Arbeiten noch ermöglicht. Gibts da was?
Spoiler anzeigen
#include <GuiComboBox.au3>
#include <WinAPI.au3>
#include <GUIConstantsEX.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <ButtonConstants.au3>
#include <GuiEdit.au3>
#RequireAdmin
;Programm Installation (prüfen ob schon installiert)
If Not FileExists(@ProgramFilesDir & "\TrueCrypt\TrueCrypt.exe") Then
installiere()
EndIf
Func installiere()
Run ("TrueCrypt Setup 7.0a.exe")
ControlClick("Datei öffnen - Sicherheitswarnung", "", "Button1")
WinWait("TrueCrypt Setup 7.0a")
ControlSend("TrueCrypt Setup 7.0a","","[CLASS:#32770; INSTANCE:1]", "!c")
ControlSend("TrueCrypt Setup 7.0a", "&Accept","[CLASS:Button; INSTANCE:3]", "!A")
WinWait("TrueCrypt Setup 7.0a", "&Install")
ControlSend("TrueCrypt Setup 7.0a", "&Next >", "[CLASS:Button; INSTANCE:3]", "!N")
WinWait("TrueCrypt Setup 7.0a")
ControlFocus("TrueCrypt Setup 7.0a","Setup Options", "SysTreeView321")
send("{TAB 9}"&"{SPACE}"&"{TAB}"&"{SPACE}"&"{TAB 3}"&"{ENTER}")
WinWait("TrueCrypt Setup", "TrueCrypt has been successfully installed.")
send("{ENTER}")
WinWait("TrueCrypt Setup", "If you have never used TrueCrypt before,")
send("{TAB}"&"{ENTER}")
send("{ENTER}")
WinWaitClose("TrueCrypt Setup 7.0a", "TrueCrypt installed")
EndFunc
;Prüfen ob genug Plattenplatz vorhanden
[/autoit] [autoit][/autoit] [autoit]Global $freespace=round(DriveSpaceFree("D:\"),1)
If $freespace < 1032.0 Then
MsgBox(4096, "TrueCrypt Installation", "Zum Erstellen des TrueCrypt Volumes auf D:\ steht nicht genügend Speicherplatz zur Verfügung! Installation abgebrochen!" &@CRLF & "Es werden mindestens 1032 MB benötigt!")
Exit
EndIf
;Programm Konfiguration (TrueCrypt Volume anlegen)
[/autoit] [autoit][/autoit] [autoit]ShellExecute("TrueCrypt.exe", "", @ProgramFilesDir & "\TrueCrypt", "open")
winwait("TrueCrypt","&Create Volume",200)
ControlSend("TrueCrypt","","[CLASS:static; INSTANCE:7]","!C")
winwait("TrueCrypt Volume Creation Wizard")
ControlSend("TrueCrypt Volume Creation Wizard", "&Next >", "[CLASS:Button; INSTANCE:3]", "!N")
winwait("TrueCrypt Volume Creation Wizard")
ControlSend("TrueCrypt Volume Creation Wizard", "&Next >", "[CLASS:Button; INSTANCE:3]", "!N")
winwait("TrueCrypt Volume Creation Wizard","Volume Location")
ControlSend("TrueCrypt Volume Creation Wizard", "&Next >", "[CLASS:#32770; INSTANCE:1]", "!F")
winwait("Specify Path and File Name")
$var=DriveGetType("D:\")
;Prüfen ob lokale D:\ Partition vorhanden
[/autoit] [autoit][/autoit] [autoit]if $var <> "Fixed" Then
MsgBox(4096, "TrueCrypt Installation", "Die Volume Erstellung kann nicht fortgesetzt werden da keine lokale D:\ Partition vorhanden ist." &@CR & "Bitte melden Sie sich beim IT Helpdesk!")
WinWaitClose("TrueCrypt Installation")
EndIf
;Prüfen ob bereits TrueCrypt Volumes mit dem Name My Volume vorhanden sind
[/autoit] [autoit][/autoit] [autoit]dim $VolumeName = ""
If FileExists("D:\My Volume") Then
For $x = 2 To 40 Step 1
while Not FileExists("D:\My Volume"&$x) And $VolumeName=""
$VolumeName="D:\My Volume"&$x
WEnd
Next
ElseIf FileExists("D:\My Volume40") Then
MsgBox(4096, "TrueCrypt Volume Fehler", "Es sind bereits über 40 TrueCrypt Volumes vorhanden! Abgebrochen!")
Exit
Else
$VolumeName = "D:\My Volume"
EndIf
;Name für TrueCrypt Volume eingeben
[/autoit] [autoit][/autoit] [autoit]ControlSetText("Specify Path and File Name", "", "[CLASS:Edit; INSTANCE:1]", $VolumeName)
Sleep(350)
send("{TAB}")
sleep(400)
send("{ENTER}")
WinWait("TrueCrypt Volume Creation Wizard","Volume Location",100)
ControlClick("TrueCrypt Volume Creation Wizard", "&Next >","Button3")
WinWait("TrueCrypt Volume Creation Wizard","Encryption Options",300)
ControlClick("TrueCrypt Volume Creation Wizard", "&Next >","Button3")
WinWait("TrueCrypt Volume Creation Wizard","Volume Size",300)
Controlsend("TrueCrypt Volume Creation Wizard", "&GB","[CLASS:#32770; INSTANCE:1]", "!G")
sleep(250)
;GUI erstellen für Benutzereingabe der TrueCrypt Volume Größe
[/autoit] [autoit][/autoit] [autoit]$sizeGui=guicreate("Size", 260, 150)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlCreateLabel("Geben Sie ein Größe für das TrueCrypt Volume ein. Es sind Größen zwischen 1 und 4 GB möglich",10,10,250,100)
$vsize=GUICtrlCreateInput("1", 115,60,50,20,$ES_NUMBER)
GUICtrlSetState(-1,$GUI_ENABLE)
$OK=GUICtrlCreateButton("&OK", 35,110,80,20)
$Cancel=GUICtrlCreateButton("&Cancel", 145,110,80,20)
GUISetState(@SW_SHOW)
;abfragen welche Volumegröße eingegeben wird und diese mit Rücksicht auf verfügbaren Plattenplatz übernehmen
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
CLOSEClicked()
Case $OK
Local $eingabe = GUICtrlRead($vsize)
If $freespace < 2060.0 And $eingabe <> 1 Then
MsgBox(4096, "Fehler", "Auf D:\ stehen weniger als 2 GB Speicherplatz zur Verfügung. Maximale TrueCrypt Volume Größe beträgt 1 GB")
ElseIf $freespace < 3083.0 And $freespace >= 2060.0 And $eingabe > 2 Then
MsgBox(4096, "Fehler", "Auf D:\ stehen weniger als 3 GB Speicherplatz zur Verfügung. Maximale TrueCrypt Volume Größe beträgt 2 GB wählen Sie einen Wert zwischen 1 und 2!")
ElseIf $freespace < 5007.0 And $freespace >= 3083.0 And $eingabe > 3 Then
MsgBox(4096, "Fehler", "Auf D:\ stehen weniger als 4 GB Speicherplatz zur Verfügung. Maximale TrueCrypt Volume Größe beträgt 3 GB wählen Sie einen Wert zwischen 1 und 3!")
ElseIf $freespace >= 5007.0 AND $eingabe > 4 Or $eingabe = 0 Then
MsgBox(48,"Fehler","Bitte geben Sie einen Wert zwischen 1 und 4 ein")
Else
_senden($eingabe)
ExitLoop
EndIf
Case $Cancel
winclose("TrueCrypt Volume Creation Wizard","Volume Size")
Exit
EndSwitch
Sleep(10)
WEnd
Func CLOSEClicked()
winclose("TrueCrypt Volume Creation Wizard","Volume Size")
Exit
EndFunc
Func _senden($eingabe)
GUIDelete($sizeGui)
sleep(300)
Send("{TAB 4}")
winwait("TrueCrypt Volume Creation Wizard","Volume Size")
Send($eingabe)
EndFunc
Controlsend("TrueCrypt Volume Creation Wizard", "&Next >", "[CLASS:Button; INSTANCE:3]","!N")
send("*******")
sleep(400)
send("{TAB}")
send("*******")
sleep(300)
ControlClick("TrueCrypt Volume Creation Wizard", "&Next >","Button3")
winwait("TrueCrypt Volume Creation Wizard", "WARNING")
send("{TAB}")
sleep(350)
send("{ENTER}")
sleep(10000)
ControlClick("TrueCrypt Volume Creation Wizard", "&Format","Button3")
winwait("TrueCrypt Volume Creation Wizard", "The TrueCrypt volume has been successfully created.")
ControlClick("TrueCrypt Volume Creation Wizard", "OK","Button1")
winwaitclose("TrueCrypt Volume Creation Wizard","The TrueCrypt volume has been successfully created.")
ControlClick("TrueCrypt Volume Creation Wizard", "Exit","Button4")
MsgBox(4096,"TrueCrypt Installation", "Die Installation von TrueCrypt ist erfolgreich abgeschlossen")
Gruß
watcha