Hallo Gemeinde,
vielleicht (und davon gehe ich aus) kann mir jemand von euch bei der Lösung meines Problems helfen.
Ich hab mir ein kleins Prog. geschrieben mit verschiedenen Funktionen unter anderem ein Fenster in dem ein Tail läuft.
Das funktioniert auch alles, sobald ich aber den Tail aufrufe, komme ich aus der Schleife nicht mehr raus. Das Fenster des Tail läßt sich nicht mehr verbergen und ist immer im Vordergrund.
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <file.au3>
#include <IniDateiTst.au3>
; #include <LaufwerkeTst.au3>
Func Start()
EndFunc ;==>Start
#region ### Aufbau der Benutzeroberfläche ###
[/autoit] [autoit][/autoit] [autoit]$Form1_1 = GUICreate("Persuasion Manager", 800, 600, 200, 100)
$Beginn = GUICtrlCreateTab(16, 48, 585, 353)
GUICtrlCreateLabel("Persuasioin Manager für die Test! ", 100, 10, 400, 28)
GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x55AA00)
$OverLayInst = GUICtrlCreateTabItem("Start")
GUICtrlCreateLabel("Persuasion Manager ", 176, 124, 208, 28)
GUICtrlSetColor(-1, 0x0066CC)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlCreateLabel("Schön das Sie sich für den Persuasion Manager entschieden haben ;-)", 80, 180, 400, 17)
GUICtrlCreateLabel("Dises Programm soll Sie bei der Verwaltung der Output Server für M3 unterstützen.", 80, 200, 400, 17)
GUICtrlCreateLabel("Durch klicken auf die oberen Reiter gelangen Sie zu den einzelnen Funktionen.", 80, 220, 400, 17)
; ===================================================== D U X F I L E I N S T A L L A T I O N ======================================
[/autoit] [autoit][/autoit] [autoit]$DuxInstall = GUICtrlCreateTabItem("Dux Install")
$DuxInstButton = GUICtrlCreateButton("OK", 224, 320, 89, 25)
GUICtrlCreateLabel("Dux File Installation ", 176, 144, 208, 28)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0066CC)
GUICtrlCreateLabel("Bitte tragen Sie im unten stehende Feld die RFC Nummer für die Sicherung ein.", 120, 200, 375, 17)
$sDuxSichVerz = GUICtrlCreateInput("", 192, 225, 177, 20)
GUICtrlSetBkColor(-1, "-2")
GUICtrlCreateLabel("Bitte geben Sie hier den Namen des neuen Dux-files ein. z.B. MWS435", 120, 260, 375, 30, -1, -1)
$fDuxFile = GUICtrlCreateInput("", 192, 285, 177, 20, -1, 512)
; ===================================================== O V E R L A Y I N S T A L L A T I O N ======================================
[/autoit] [autoit][/autoit] [autoit]$OverLayInst = GUICtrlCreateTabItem("Overlay Install")
$aSichNr = GUICtrlCreateInput("", 192, 248, 177, 21)
$Label3 = GUICtrlCreateLabel("Overlay Installation ", 176, 144, 185, 28)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0066CC)
$sOverButton = GUICtrlCreateButton("Overlay", 216, 320, 123, 25)
$TextOver_1 = GUICtrlCreateLabel("Tragen Sie Bitte die RFC Nummer in das Feld ein und klicken anschliessend", 115, 181, 378, 17)
$TextOver_2 = GUICtrlCreateLabel("auf den Button Overlay um die zu Installierende Datei auszuwählen.", 115, 201, 378, 17)
; ==============================================================================================================
; L o g D a t e i l e s e n
; ==============================================================================================================
$TabSheet8 = GUICtrlCreateTabItem("Log File lesen")
; $aDateiLesen = GUICtrlCreateEdit(" ", 20,80,500,300)
$aButtonLogStart=GUICtrlCreateButton("Start", 520,100,80)
; ==============================================================================================================
; L o g D a t e i l e s e n
; ==============================================================================================================
$TabSheet9 = GUICtrlCreateTabItem("Platzhalter")
; ==================================================== F u ß z e i l e ===================================
GUICtrlCreateTabItem("")
$Label7 = GUICtrlCreateLabel("2014 - (c) by M. Klein", 496, 416, 104, 17)
GUICtrlCreateLabel("Persuasion Manager v. Beta 0.4.0", 10,416, 250, 17)
$Pic1 = GUICtrlCreatePic("Images\Boellhofflogo.jpg", 528, 0, 65, 65)
GUISetState(@SW_SHOW)
#endregion ### Aufbau der Benutzeroberfläche ###
#Region ### Variablen Deklaration
;================================================== Varoablen deklaration=======================================================================
; Funktion: Werte der Ini Datei auslesen und Variablen zuordnen
;================================================================================================================================================
Global $Overlay_1 = IniRead($IniDatei, "Server_1", "Overlay_1", "")
Global $Overlay_2 = IniRead($IniDatei, "Server_2", "Overlay_2", "")
; Global $Overlay_3 = IniRead($IniDatei, "Server_3", "Overlay_3", "")
Global $nServerName_1 = IniRead($IniDatei, "Server_1", "ServerName_1", "")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Global $Export_Server_1 = IniRead($IniDatei, "Server_1", "Exported", "")
Global $nServerName_2 = IniRead($IniDatei, "Server_2", "ServerName_2", "")
; Global $nServerName_3 = IniRead($IniDatei, "Server_3", "ServerName_3", "")
Global $Export_Server_2 = IniRead($IniDatei, "Server_2", "Exported", "")
; Global $Export_Server_3 = IniRead($IniDatei, "Server_3", "Exported", "")
Global $Export_Server_2 = IniRead($IniDatei, "Server_2", "Exported", "")
Global $Event_Server_2 = IniRead($IniDatei, "Server_2", "Events", "")
Global $Process_Server_2 = IniRead($IniDatei, "Server_2", "Processes", "")
Global $Language_1 = IniRead($IniDatei, "Server_1", "Tables", "")
Global $Language_2 = IniRead($IniDatei, "Server_2", "Tables", "")
Global $RestVerz = IniRead($IniDatei, "Server_2", "Exported", "")
Global $RestVerz_Event = IniRead($IniDatei, "Server_2", "Events", "")
Global $aEvent_2 = IniRead($IniDatei, "Server_2", "Events", "")
Global $aExport_2 = IniRead($IniDatei, "Server_2", "Exported", "")
Global $aProcesses_2 = IniRead($IniDatei, "Server_2", "Processes", "")
; Global $aEvent_3 = IniRead($IniDatei, "Server_3", "Events", "")
; Global $aExport_3 = IniRead($IniDatei, "Server_3", "Exported", "")
; Global $aProcesses_3 = IniRead($IniDatei, "Server_3", "Processes", "")
Global $Function_1 = IniRead($IniDatei, "Server_1", "Function_1", "")
Global $Function_2 = IniRead($IniDatei, "Server_2", "Function_2", "")
; Global $Function_3 = IniRead($IniDatei, "Server_3", "Function_3", "")
#EndRegion ### Variablen Deklaration
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
UnMount()
;========================================== O V E R L A Y S I N S T A L L ====================================================================
; Funktion: Erstellen eines Sicherungsordners Verschieben der Orginaldatei und Kopieren der Overlay Datei
;================================================================================================================================================
Case $sOverButton
$message = "Wäheln Sie eine Datei aus."
$var = FileOpenDialog($message, $Overlay_1 & "\", "Overlay (*.lxf) |Alle (*.*)", 1 + 2)
If @error Then
MsgBox(4096, "", "Sie haben keine Datei(en) ausgewählt")
Else
$var = StringReplace($var, "|", @CRLF)
$asSplit = StringSplit($var, '\')
$OverDatei = $asSplit[$asSplit[0]]
$Ausw = MsgBox(49, "", "Soll die Datei " & $OverDatei & " Kopiert werden?")
Switch $Ausw
Case 1; OK
VerzPruefen()
ContinueLoop
Case 2; Abbruch
Start()
EndSwitch
EndIf
;=============================================== D U X I N S T A L L =========================================================================
; Funktion: Erstellen eines Sicherungsordners Verschieben der Orginaldatei und Kopieren der Dateien
;================================================================================================================================================
Case $DuxInstButton
Global $DuxDatei_1 = GUICtrlRead($fDuxFile)
Global $fDuxDatei = ($DuxDatei_1 & "*.*")
If (StringLen($fDuxDatei) < 9) Then
MsgBox(16, "Fehler", "Der Dateiname muss mindestens 6 Zeichen lang sein.")
; Start()
Else
Global $sDuxSichOrd = GUICtrlRead($sDuxSichVerz)
If FileExists($Export_Server_1 & "\" & $fDuxDatei) Then
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];If FileExists($Export_Server_2 & "\" & $fDuxDatei) And FileExists($Export_Server_3 & "\" & $fDuxDatei) Then ; Abfrage am 17.06.2014 entfernt.
PruefSichVerzeichnis()
ContinueLoop
; Else
$BoxWeiterAbbruch = GUICreate("BoxWeiterAbbruch", 361, 113, -1, -1, -1, -1)
$Fortfahren = GUICtrlCreateButton("Fortfahren", 80, 60, 100, 30, -1, -1)
$Abbruch = GUICtrlCreateButton("Abbruch", 220, 60, 100, 30, -1, -1)
GUICtrlCreateLabel("Die Datei " & $fDuxDatei & "existiert auf einem der Produktionsserver nicht!" & @CRLF & "Wollen Sie fortfahren oder abbrechen?", 60, 10, 277, 32, -1, -1)
GUICtrlSetBkColor(-1, "-2")
GUICtrlCreatePic("C:\Program Files\InstDux\Pic\Boellhofflogo.jpg", 20, 50, 50, 50, -1, -1)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUIDelete($BoxWeiterAbbruch)
Exit
Case $Fortfahren
PruefSichVerzeichnis()
ContinueLoop
Case $Abbruch
GUIDelete($BoxWeiterAbbruch)
; Start()
ContinueLoop
EndSwitch
WEnd
; EndIf
Else
MsgBox(32, "Fehler", "Die Datei " & $fDuxDatei & " existiert auf dem Server " & $nServerName_1 & " nicht. Bitte wiederholen Sie Ihre Eingabe!")
; Start()
EndIf
EndIf
;=========================================================================================
; T a i l
;=========================================================================================
case $aButtonLogStart
$EndeTail = GUICtrlCreateButton("Ende", 520, 140, 80)
;$aButtonLogStart=GUICtrlCreateButton("Start", 520,100,80)
$tailfile = "C:\Users\MKlein\Documents\TestDatei.txt"
Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$line = _tail($tailfile)
$Edit = GUICtrlCreateEdit($line, 20,80,500,300, $WS_HSCROLL)
; GUISetState(@SW_SHOW,$TailTab)
While 1
Sleep(2500) ; Häng rum
;$Zeit=@HOUR & ":" & @MIN & ":" & @SEC
$line = _tail($tailfile)
GUICtrlSetData($Edit, $line);Nicht immer neues Edit erstellen sondern einfach Edit updaten mit GuiCtrlSetData!
; GUICtrlCreateEdit($line, 20,80,500,300, $WS_HSCROLL)
$cMsg = GUIGetMsg()
Switch $cMsg
Case $EndeTail
GUICtrlSetState($Edit, $GUI_delete)
Start()
EndSwitch
ExitLoop
WEnd
EndSwitch
WEnd
#region ### OverLay Installation ###
; ===================================================== O V E R L A Y I N S T A L L A T I O N ======================================
Func VerzPruefen()
$OverVerz_1 = GUICtrlRead($aSichNr, 1)
$OverSichVerz_2 = ($Overlay_2 & "\" & @YEAR & @MON & @MDAY & "_" & $OverVerz_1)
; $OverSichVerz_3 = ($Overlay_3 & "\" & @YEAR & @MON & @MDAY & "_" & $OverVerz_1)
If FileExists($OverSichVerz_2) Then
MsgBox(0, "Warnung", "Achtung das Verzeichnis existiert bereits!" & @CRLF & $OverSichVerz_2 & @CRLF & "geben Sie bitte einen anderen Verzeichnisnamen ein.")
Start()
Else
DirCreate($OverSichVerz_2)
; DirCreate($OverSichVerz_3)
FileMove($Overlay_2 & "\" & $OverDatei, $OverSichVerz_2 & "\")
; FileMove($Overlay_3 & "\" & $OverDatei, $OverSichVerz_3 & "\")
FileCopy($Overlay_1 & "\" & $OverDatei, $Overlay_2 & "\", 1)
; FileCopy($Overlay_1 & "\" & $OverDatei, $Overlay_3 & "\", 1)
MsgBox(0, "", "Die Datei " & $OverDatei & " wurde kopiert!")
EndIf
EndFunc ;==>VerzPruefen
#endregion ### OverLay Installation ###
#region Dux File Installation
; ===================================================== D U X F I L E I N S T A L L A T I O N ======================================
Func PruefSichVerzeichnis()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Verz_Prod_2Exp = $Export_Server_2 & "\" & @YEAR & @MON & @MDAY & "_" & $sDuxSichOrd
$Verz_Prod_2Ev = $Event_Server_2 & "\" & @YEAR & @MON & @MDAY & "_" & $sDuxSichOrd
$Verz_Prod_2Proc = $Process_Server_2 & "\" & @YEAR & @MON & @MDAY & "_" & $sDuxSichOrd
If FileExists($Verz_Prod_2Ev) Then
MsgBox(4096, "", "Das Verzeichnis " & $Verz_Prod_2Ev & " existiert bereits auf MOM03" & @CRLF & "Bitte wählen Sie einen anderen Verzeichnisnamen!")
Start()
Else
; Sicherungsverzeichnisse erstellen
DirCreate($Verz_Prod_2Exp)
DirCreate($Verz_Prod_2Ev)
DirCreate($Verz_Prod_2Proc)
MsgBox(4096, "", "Verzeichnis " & @CRLF & $Verz_Prod_2Ev & @CRLF & " wurde auf beiden Produktions Test erstellt!")
;Dateien kopieren
$Event_Server_1 = IniRead($IniDatei, "Server_1", "Events", "")
$Process_Server_1 = IniRead($IniDatei, "Server_1", "Processes", "")
FileMove($Event_Server_2 & "\" & $fDuxDatei, $Verz_Prod_2Ev)
FileMove($Process_Server_2 & "\" & $fDuxDatei, $Verz_Prod_2Proc)
FileMove($Export_Server_2 & "\" & $fDuxDatei, $Verz_Prod_2Exp)
FileCopy($Event_Server_1 & "\" & $fDuxDatei, $Event_Server_2)
FileCopy($Export_Server_1 & "\" & $fDuxDatei, $Export_Server_2)
FileCopy($Process_Server_1 & "\" & $fDuxDatei, $Process_Server_2)
MsgBox(0, "Erledigt", "Die Dateien wurden gesichert und kopiert!")
EndIf
EndFunc
#endregion Dux File Installation
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func CLOSEClicked()
MsgBox(0, "GUI Event", "Du hast auf CLOSE geklickt! Programm wird beendet...", 1)
Exit
EndFunc ;==>CLOSEClicked
Func _tail($PROT)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Local $aRecords = StringSplit(FileRead($PROT), @LF)
$lesezeile = 10
$tailtext = ''
For $i = $aRecords[0]-$lesezeile To $aRecords[0]
$tailtext &= $aRecords[$i] & @CRLF
Next
Return $tailtext
EndFunc ;==>_tail
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func UnMount()
; DriveMapDel($aServer_1LW)
; DriveMapDel($aServer_2LW)
; DriveMapDel($aServer_3LW)
Exit
EndFunc ;==>UnMount
Vielen Dank!