Spoiler anzeigen
#include <GUIConstants.au3>
#include <array.au3>
#include <file.au3>
#include <Process.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
Opt("MustDeclareVars", 1)
Opt("GUICloseOnESC", 1)
Dim $Pic2, $MGUI, $Button1, $Pic1, $Label2, $Label3, $Progress2, $Group1, $Group2, $Progress1, $Label1, $Button3
Dim $szDrive, $szDir, $szFName, $szExt, $e, $iElement, $esgibtes, $esgibtes1, $Button4, $Input1Inhalt
Dim $StartPfad, $FileTyp, $aFiles, $datei, $Datei_oE, $hPid, $e, $tCur, $Input1, $LogDatei
Dim $nMsg, $hChild, $TxtDatei, $bFileExists, $NEXSTYLE, $i_ShowOver4000, $i, $s
$MGUI = GUICreate("KUTTIG Computeranwendungen GmbH", 1000, 850, -1 , -1, -1)
GUISetBkColor(0xFFFFFF)
$Pic1 = GUICtrlCreatePic("D:\KUTTIG\FirmenAnderes\Bilder\firma\kuttig.gif", 830, 5, 0, 0)
$Pic2 = GUICtrlCreatePic("D:\KUTTIG\FirmenAnderes\Bilder\firma\unternehmen.jpg", 10, 26, 0, 0)
$Group2 = GUICtrlCreateGroup("Beschreibung", 8, 136, 984, 656)
GUICtrlSetFont ($Group2, 14, 25, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x990066)
GUICtrlSetState($Group2, $GUI_SHOW)
$Label1 = GUICtrlCreateLabel("Es werden nach allen .tcd gesucht, dann werden diese nacheinander mit CAD6 geöffnet und in einem neuen Format (.dwg) gespeichert." & @CRLF & @CRLF & "Bitte geben Sie den Pfad ein oder nutzen Sie den 'Durchsuchen'-Button." , 16, 300, 800, 400)
GUICtrlSetFont(-15, 12, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("", 18, 450, 500, 20)
GUICtrlSetFont(-15, 10, 400, 0, "MS Sans Serif")
$Button4 = GUICtrlCreateButton("Durchsuchen", 550, 446, 100, 27, 0)
$Label2 = GUICtrlCreateLabel("Während das Programm läuft arbeiten Sie bitte nicht weiter." & @CRLF & "Und schließen Sie bitte alle Anwendungen!", 16, 200, 800, 50)
GUICtrlSetFont ($Label2, 12, 400, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Start", 750, 810, 100, 25, 0)
$Button3 = GUICtrlCreateButton("Beenden", 750, 810, 100, 25, 0)
GUICtrlSetState($Button3, $GUI_HIDE)
$Progress1 = GUICtrlCreateProgress(25, 810, 500, 25)
GUICtrlSetState($Progress1, $GUI_HIDE)
GUISetState()
ProcessClose ("CAD6.exe")
[/autoit] [autoit][/autoit] [autoit]$LogDatei = "KontrollDatei.txt"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button1
$Input1Inhalt = GUICtrlRead ($Input1)
$tCur = _Date_Time_GetLocalTime()
$TxtDatei = FileOpen($LogDatei, 1)
FileWriteLine($TxtDatei, "000 : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
FileWriteLine($TxtDatei, "000 : " & _Date_Time_SystemTimeToDateTimeStr($tCur))
$TxtDatei = FileOpen($LogDatei, 1)
If $Input1Inhalt = "" Then
GUICtrlSetData ($Label1, "Bitte wählen Sie den Ordner, in dem die TCD-Dateien liegen.")
$StartPfad = FileSelectFolder ("Wählen Sie den Ordner, in dem die TCD-Dateien liegen.", "")
If $StartPfad = "" or @error Then
Exit
EndIf
Else
$StartPfad = $Input1Inhalt
EndIf
$FileTyp = "tcd"
$aFiles = _GetFilesFolder_Rekursiv($StartPfad, $FileTyp, 0)
$esgibtes1 = False
Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
Global $oFSO = ObjCreate('Scripting.FileSystemObject')
Global $strFiles = ''
If ($iRetType < 0) Or ($iRetType > 1) Then
$iRetType = 0
EndIf
If $sExt = -1 Then
$sExt = '*'
EndIf
If ($iDir < -1) Or ($iDir > 1) Then
$iDir = -1
EndIf
_ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
If $iRetType = 0 Then
Local $aOut
$aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles, StringLen($sDelim))
EndIf
EndFunc
Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
If Not IsDeclared("strFiles") Then
Global $strFiles = ''
EndIf
If ($Dir = -1) Or ($Dir = 0) Then
For $file In $Folder.Files
If $Ext <> '*' Then
If StringRight($file.Name, StringLen($Ext)) = $Ext Then
$strFiles &= $file.Path & $Delim
EndIf
Else
$strFiles &= $file.Path & $Delim
EndIf
Next
EndIf
For $Subfolder In $Folder.SubFolders
If ($Dir = -1) Or ($Dir = 1) Then
$strFiles &= $Subfolder.Path & '\' & $Delim
EndIf
_ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
Next
EndFunc
Func _Fenstercheck()
If WinExists("Technobox CAD6", "Fehler beim Öffnen" ) then
$esgibtes1 = True
Endif
EndFunc
For $i = 1 to _ArrayMax($aFiles)
$s = $i
IF $s < _ArrayMax($aFiles) Then
$e = 100/_ArrayMax($aFiles)*$s
GUICtrlSetData ($Progress1,$e)
ElseIf $s = _ArrayMax($aFiles) Then
$e = 100
GUICtrlSetData ($Progress1,$e)
EndIf
$datei = $aFiles[$i]
$Datei_oE = StringTrimRight($datei, 3) & "dwg"
If FileExists($Datei_oE) Then
FileDelete($Datei_oE)
EndIf
ProcessWaitClose ("CAD6.exe")
WinSetOnTop ( "KUTTIG Computeranwendungen GmbH", "", 1)
GUICtrlSetState($Button4, $GUI_HIDE)
GUICtrlSetState($Input1, $GUI_HIDE)
GUICtrlSetState($Progress1, $GUI_SHOW)
GUICtrlSetState($Button1, $GUI_HIDE)
GUICtrlSetData ($Label2, "Bitte arbeiten Sie nicht weiter, bis das Programm fertig ist.")
GUICtrlSetData ($Group2, "Durchführung" )
GUICtrlSetData ($Label1, $i & " von " & _ArrayMax($aFiles) & @CRLF & @CRLF & "Aktuelle Zeichnung: " & @CRLF & @CRLF & "von: " & @CRLF & $datei & @CRLF & @CRLF & "in: " & @CRLF & $Datei_oE)
GUICtrlSetState($Progress2, $GUI_SHOW)
Sleep(1000)
ShellExecute($datei, "", "", "open", @SW_HIDE)
Sleep(1000)
AdlibEnable("_Fenstercheck")
If $esgibtes1 = true Then
$tCur = _Date_Time_GetLocalTime()
MsgBox (0, "", "Es ist ein Fehler aufgetreten!", 2)
FileWriteLine($TxtDatei, "006 FEHLER!")
FileWriteLine($TxtDatei, "007 " & _Date_Time_SystemTimeToDateTimeStr($tCur))
FileWriteLine($TxtDatei, "008 : " & $datei & @CRLF)
$iElement = $i
_ArrayDelete ( $aFiles, $iElement )
Controlsend("Technobox CAD6", "Fehler beim Öffnen" , "Button7", "{Enter}")
ContinueLoop
Else
sleep(1000)
Controlsend("Technobox CAD6", "", "CAD4draw1", "{F12}")
sleep(1000)
Controlsend("Zeichnung speichern unter", "", "Edit1", $Datei_oE)
sleep(1000)
Controlsend("Zeichnung speichern unter", "", "Edit1","{TAB}")
sleep(1000)
Controlsend("Zeichnung speichern unter", "", "ComboBox2","zdd")
sleep(1000)
Controlsend("Zeichnung speichern unter", "", "Button2","!s")
sleep(1000)
WinWait("DWG Export")
[/autoit] [autoit][/autoit] [autoit]Controlsend("DWG Export", "", "Button7", "{Enter}")
$bFileExists = False
While $bFileExists = False
If FileExists($Datei_oE) Then
$bFileExists = True
$tCur = _Date_Time_GetLocalTime()
FileWriteLine($TxtDatei, "")
FileWriteLine($TxtDatei, "001 " & $i & " von " & _ArrayMax($aFiles))
FileWriteLine($TxtDatei, "002 " & _Date_Time_SystemTimeToDateTimeStr($tCur))
FileWriteLine($TxtDatei, "003 " & $datei)
FileWriteLine($TxtDatei, "004 " & $Datei_oE & " erstellt!")
EndIf
Sleep(1000)
WEnd
Do
Until $bFileExists = true
ProcessClose ("CAD6.exe")
EndIF
ProcessClose ("CAD6.exe")
Next
WinSetOnTop ( "KUTTIG Computeranwendungen GmbH", "", 0)
GUICtrlSetData ($Group2, "Abgeschlossen" )
GUICtrlSetData ($Label1, "Es wurde eine KontrollDatei.txt erstellt zum Nachlesen der Ereignisse!")
FileWriteLine($TxtDatei, "005 Alle Dateien bearbeitet!")
FileWriteLine($TxtDatei, "")
FileWriteLine($TxtDatei, "")
GUICtrlSetState($Button3, $GUI_SHOW)
GUICtrlSetData ($Label2, "Das Programm ist fertig und der Prozess erfolgreich abgeschlossen.")
FileClose($LogDatei)
Case $Button3
Exit
Case $GUI_EVENT_CLOSE
Exit
Case $Button4
$Input1Inhalt = GUICtrlRead ($Input1)
If $Input1Inhalt = "" Then
$StartPfad = FileSelectFolder ("Wählen Sie den Ordner, in dem die TCD-Dateien liegen.", "")
ControlSend ( "KUTTIG Computeranwendungen GmbH", "", $Input1, $StartPfad)
Else
$Input1Inhalt = $StartPfad
EndIf
EndSwitch
WEnd
$Button4 lässt sich nicht klicken. Wieso nicht?