Hab bemerkt das der Arbeitsspeicher doch noch volläuft obwohl ich zwischendurch alles beende weiß aber leider nicht warum falls jemand ne Idee hätte
Beiträge von I3asti
-
-
Mahlzeit,
mein "Dauerping" ist ja nur die Ping-Funktion von Autoit in einer Schleife, wenn du das beenden willst musst du einfach nur die Schleife beenden.
Wie startest du deinen Dauerping? Strg + c funktioniert ja nur in der Konsole wenn du deinen Dauerping mit ping -t laufen lässt.
-
Jo des hatte ich bei Google auch rausgefunden, aber trotzdem danke. Ich weiß aber nicht warum der vollläuft.
Edit: Problem umgegangen funktionierender Code ist eingefügt
-
Hab jetzt doch ne Fehlermeldung bekommen bei der Pingfunktion.
[Blockierte Grafik: http://www7.pic-upload.de/thumb/22.03.12/d84kxa3piwqx.jpg]
-
Falls jemand mal kurz Zeit hätte ich komm net drauf. Ich habe das Programm über das Wochenende auf der Arbeit laufen lassen und als ich heute früh danach geschaut habe war es aus ohne Fehlermeldung, auch nichts in den Ereignisprotokollen. Ich habe es jetzt nochmal gestartet und lasse es laufen um zu schauen ob das Problem wieder kommt.
-
In Zeile 131/132 vom Pinglist Code solltest du statt StringRegExp einfach nur StringInStr verwenden, das ist schneller.
^ ^ geändert danke
-
[Blockierte Grafik: http://img4.fotos-hochladen.net/thumbnail/pinglistknhgpsb258_thumb.jpg]
Hallo,
das Programm hab ich mal für einen Kollegen geschrieben der testen wollte ob alle Server durchlaufen oder sich zwischendurch neustartenFunktionsweise:
Spoiler anzeigen
Das Programm pingt eine Liste von IP's und versendet, wenn sich ein Status ändert eine E-Mail.
Man kann im Programm die IP's mit Beschreibung usw. eintragen.
Die E-Mail Adresse wird bis aufs Passwort in eine ini geschrieben, damit man beim nächsten Start nicht wieder alles eingeben muss.
Jeder Eintrag in der Liste bekommt einen eigenen Prozess.
Schreibt Statusänderungen in ein Textdokument.Pinglist Code:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#cs --------------------------------------------------------------------------------------------------------
Name: PingListDescription: Ping a list of Computers, write protocols, send e-mails if a Computer change his mode
[/autoit] [autoit][/autoit] [autoit]Author: I3asti
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#ce --------------------------------------------------------------------------------------------------------#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <date.au3>
#include <GuiListView.au3>
#include <file.au3>
#include <mail.au3>
#include <EditConstants.au3>
#include <StructureConstants.au3>
#include <Clipboard.au3>
#include <GUIConstantsEx.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Dim $IP_Adresse, $Timeout, $Kunde, $Beschreibung, $Intervall, $k, $File, $t, $Server, $Benutzername, $Passwort, $EMail, $Smtp, $Port, $SSL, $string, $stringsplit
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$ProgrammStatus = 0
$Stop = 0
Global $Adressen_Array[10000]
$Adressen = @ScriptDir & "\pingliste.txt"
$Ende = @ScriptDir & "\Ende.txt"
$ESave = @ScriptDir & "\EMail.ini"
$FirstRun = 1
$Status_End1 = "Online"
$Status_End2 = "Offline"
$z = 0
$Laufzeit = 0#region GUI
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Ping = GUICreate("Ping", 961, 550, 193, 125)
$Listview2 = GUICtrlCreateListView("Kunde|Beschreibung|IP-Adresse|Timeout|Ergebnis|letzter Ping", 8, 8, 946, 115)
GUICtrlSendMsg(-1, 0x101E, 0, 175)
GUICtrlSendMsg(-1, 0x101E, 1, 175)
GUICtrlSendMsg(-1, 0x101E, 2, 166)
GUICtrlSendMsg(-1, 0x101E, 3, 115)
GUICtrlSendMsg(-1, 0x101E, 4, 155)
GUICtrlSendMsg(-1, 0x101E, 5, 155)
$Listview = GUICtrlCreateListView("Kunde|Beschreibung|IP-Adresse|Timeout|Ergebnis|letzter Ping", 8, 128, 609, 377)
GUICtrlSendMsg(-1, 0x101E, 0, 85)
GUICtrlSendMsg(-1, 0x101E, 1, 125)
GUICtrlSendMsg(-1, 0x101E, 2, 120)
GUICtrlSendMsg(-1, 0x101E, 3, 65)
GUICtrlSendMsg(-1, 0x101E, 4, 85)
GUICtrlSendMsg(-1, 0x101E, 5, 125)
$Kunde_Label = GUICtrlCreateLabel("Kunde", 632, 128, 50, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Kunde_Input = GUICtrlCreateInput($Kunde, 688, 128, 265, 21)
$Beschreibung_Label = GUICtrlCreateLabel("Beschreibung", 632, 160, 102, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Beschreibung_Input = GUICtrlCreateInput($Beschreibung, 736, 160, 217, 21)
$IP_Label = GUICtrlCreateLabel("IP", 632, 192, 19, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$IP_Input = GUICtrlCreateInput($IP_Adresse, 656, 192, 297, 21)
$Timeout_Label = GUICtrlCreateLabel("Timeout", 632, 224, 61, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Timeout_Input = GUICtrlCreateInput($Timeout, 696, 224, 257, 21)
$Insert = GUICtrlCreateButton("Hinzufügen", 880, 256, 75, 25, 0)
$Modus_Label = GUICtrlCreateLabel("Modus", 632, 264, 52, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Dauerping_Radio = GUICtrlCreateRadio("Dauerping (Jede Sekunde)", 632, 288, 250, 25)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Intervall_Radio = GUICtrlCreateRadio("Intervall", 632, 320, 113, 17)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Intervall_Input = GUICtrlCreateInput($Intervall, 832, 320, 121, 21)
$Aktueller_Ping = GUICtrlCreateLabel("Aktueller Ping:", 120, 520, 500, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Benutzername_Input = GUICtrlCreateInput($Benutzername, 632, 386, 129, 21)
$Passwort_Input = GUICtrlCreateInput($Passwort, 784, 386, 109, 21, $ES_PASSWORD)
$SSL_Check = GUICtrlCreateCheckbox("SSL", 904, 386)
$Benutzername_Label = GUICtrlCreateLabel("Benutzername", 632, 362, 109, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Passwort_Label = GUICtrlCreateLabel("Passwort", 784, 362, 109, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Zieladresse_Label = GUICtrlCreateLabel("Ziel-EMail", 632, 416, 109, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Zieladresse_Input = GUICtrlCreateInput($EMail, 632, 440, 129, 21)
$SMTP_Label = GUICtrlCreateLabel("SMTP-Server", 784, 416, 109, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$SMTP_Input = GUICtrlCreateInput($Smtp, 784, 440, 109, 21)
$Port_Label = GUICtrlCreateLabel("Port", 904, 416, 69, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Port_Input = GUICtrlCreateInput($Port, 904, 440, 49, 21)
$Delete_Button = GUICtrlCreateButton("Löschen", 632, 480, 75, 25, 0)
$Ende_Button = GUICtrlCreateButton("Ende", 792, 480, 75, 25, 0)
$Start_Button = GUICtrlCreateButton("Start", 880, 480, 75, 25, 0)
$Lade_Button = GUICtrlCreateButton("Lade Daten", 8, 520, 75, 25, 0)
$Testmail_Button = GUICtrlCreateButton("Test-Mail", 792, 520, 75, 25, 0)
$Close_Button = GUICtrlCreateButton("Beenden", 880, 520, 75, 25, 0)
GUISetState(@SW_SHOW)
GUICtrlSetOnEvent($Start_Button, "_Start")
GUICtrlSetOnEvent($Ende_Button, "_End")
GUICtrlSetOnEvent($Close_Button, "_Close")
GUISetOnEvent($GUI_EVENT_CLOSE, "_Close")
GUICtrlSetOnEvent($Lade_Button, "_LadeDaten")
GUICtrlSetOnEvent($Insert, "_SchreibeDaten")
GUICtrlSetOnEvent($Delete_Button, "_Delete")
GUICtrlSetOnEvent($Testmail_Button, "_Testmail")
#endregion GUICall("_LadeDaten")
[/autoit] [autoit][/autoit] [autoit]If $ProgrammStatus = 1 Then
[/autoit] [autoit][/autoit] [autoit]
AdlibRegister("_Ziel_Status", 1000)
EndIfWhile 1
[/autoit] [autoit][/autoit] [autoit]Sleep(100) ;damit er nicht 100% cpu verbrauch
[/autoit] [autoit][/autoit] [autoit]If $Laufzeit > 1000 Then
[/autoit] [autoit][/autoit] [autoit]
Run(@ScriptName)
Sleep(100)
Exit
EndIfWEnd
[/autoit] [autoit][/autoit] [autoit]Func _Testmail()
[/autoit] [autoit][/autoit] [autoit]$Benutzername = GUICtrlRead($Benutzername_Input)
[/autoit] [autoit][/autoit] [autoit]
$Passwort = GUICtrlRead($Passwort_Input)
$EMail = GUICtrlRead($Zieladresse_Input)
$Smtp = GUICtrlRead($SMTP_Input)
$Port = GUICtrlRead($Port_Input)If $Benutzername <> "" Then ;Wenn Benutzername und Passwort nicht leer sind
[/autoit] [autoit][/autoit] [autoit]
If $Passwort <> "" Then ;Wenn Benutzername und Passwort nicht leer sind
If $EMail <> "" Then ;Wenn die Zieladresse nicht leer ist
If $Smtp <> "" Then ;Wenn ein SMTP-Server eingetragen ist
If $Port <> "" Then ;Wenn ein Port eingetragen ist
If StringInStr($EMail, "@") Then
If StringInStr($EMail, " ") ThenMsgBox(16, "!!!Fehler!!!", "In der EMail ist ein Leerzeichen enthalten")
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]If BitAND(GUICtrlRead($SSL_Check), $GUI_CHECKED) Then
[/autoit] [autoit][/autoit] [autoit]$SSL = 1 ;SSL an
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]$SSL = "" ;SSL aus
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Call("_SchreibeEmail")
[/autoit] [autoit][/autoit] [autoit]
Call("_Mail", $Benutzername, $Passwort, "Testmail", $EMail, $Smtp, $Port, $SSL)EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]MsgBox(16, "!!!Fehler!!!", "In der EMail fehlt das @ Zeichen")
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Geben Sie einen Port an")
EndIfElse
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Geben Sie einen SMTP-Server an")
EndIfElse
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Geben Sie eine Zieladresse an")
EndIfElse
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Geben Sie ein Passwort an")
EndIfElse
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Geben Sie einen Benutzernamen an")
EndIfEndFunc ;==>_Testmail
[/autoit] [autoit][/autoit] [autoit]Func _Delete()
[/autoit] [autoit][/autoit] [autoit]
If $ProgrammStatus = 1 Then ;Test ob Ping bereits ausgeführt wird
MsgBox(16, "!!!Stop!!!", "Ping wird gerade ausgeführt")
Else
$Del = _GUICtrlListView_GetSelectedIndices($Listview) ;Ausgewählter Eintrag in Del schreiben
If $Del = "" Then
MsgBox(16, "!!!Fehler!!!", "Wählen sie einen Eintrag aus") ;wenn kein Eintrag ausgewählt war
Else
$Del = $Del + 1 ;Del um eins erhöhen
_ArrayDelete($Adressen_Array, $Del) ;Eintrag aus Array löschen
$k = 0
$d = 0 ;==> Zähler setzenFileDelete($Adressen) ;Liste löschen
[/autoit] [autoit][/autoit] [autoit]For $l = 1 To $Adressen_Array[0] Step 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If $d <> 0 Then ;beim ersten durchlauf nicht durchführen
$k = $k + 1
FileWriteLine($Adressen, $Adressen_Array[$k] & @CRLF) ;Eitnräge schreiben
EndIf
$d = 1
Next
Call("_LadeDaten") ;Daten laden
EndIf
EndIf
EndFunc ;==>_DeleteFunc _Start()
[/autoit] [autoit][/autoit] [autoit]FileDelete($Ende)
[/autoit] [autoit][/autoit] [autoit]$Benutzername = GUICtrlRead($Benutzername_Input)
[/autoit] [autoit][/autoit] [autoit]
$Passwort = GUICtrlRead($Passwort_Input)
$EMail = GUICtrlRead($Zieladresse_Input)
$Smtp = GUICtrlRead($SMTP_Input)
$Port = GUICtrlRead($Port_Input)If $ProgrammStatus = 1 Then ;Test ob Ping bereits ausgeführt wird
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Ping läuft bereits")
ElseIf $Benutzername <> "" Then ;Wenn Benutzername und Passwort nicht leer sind
[/autoit] [autoit][/autoit] [autoit]
If $Passwort <> "" Then ;Wenn Benutzername und Passwort nicht leer sind
If $EMail <> "" Then ;Wenn die Zieladresse nicht leer ist
If $Smtp <> "" Then ;Wenn ein SMTP-Server eingetragen ist
If $Port <> "" Then ;Wenn ein Port eingetragen ist
If StringRegExp($EMail, "@") Then
If StringRegExp($EMail, " ") ThenMsgBox(16, "!!!Fehler!!!", "In der EMail ist ein Leerzeichen enthalten")
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]If BitAND(GUICtrlRead($SSL_Check), $GUI_CHECKED) Then
[/autoit] [autoit][/autoit] [autoit]$SSL = 1 ;SSL an
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]$SSL = "" ;SSL aus
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Call("_SchreibeEmail")
[/autoit] [autoit][/autoit] [autoit]
IniWrite($ESave, "Running", "Running", "1")
$Intervall = "" ;Setzt Intervall zurück
Call("_Check")EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]MsgBox(16, "!!!Fehler!!!", "In der EMail fehlt das @ Zeichen")
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Geben Sie einen Port an")
EndIfElse
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Geben Sie einen SMTP-Server an")
EndIfElse
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Geben Sie eine Zieladresse an")
EndIfElse
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Geben Sie ein Passwort an")
EndIfElse
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Geben Sie einen Benutzernamen an")
EndIfEndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_StartFunc _Close()
[/autoit] [autoit][/autoit] [autoit]If $ProgrammStatus <> 0 Then ;Test ob Ping ausgeführt wird
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Stop!!!", "Ping läuft noch bitte erst Ping beenden")
Else
Exit
EndIfEndFunc ;==>_Close
[/autoit] [autoit][/autoit] [autoit]Func _Modus($Modus)
[/autoit] [autoit][/autoit] [autoit]$FirstRun = 1 ;Setzt FirstRun auf 0
[/autoit] [autoit][/autoit] [autoit]
$Stop = 0 ;Setzt Stop wieder auf 0
$t = 0 ;Setzt t auf 0
$ProgrammStatus = 1 ;Setzt den ProgrammStatus auf laufend
GUICtrlSetData($Aktueller_Ping, "Aktueller Ping:Ping läuft")If $Modus = 1 Then
[/autoit] [autoit][/autoit] [autoit]
$Intervall = 1000
Call("_Go") ;startet _Start
ElseIf $Modus = 2 Then
$Intervall = $Intervall * 1000
Call("_Go") ;startet _Start
EndIfEndFunc ;==>_Modus
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Check()
[/autoit] [autoit][/autoit] [autoit]If GUICtrlRead($Dauerping_Radio) = 1 Then ;Wenn Dauerping gedrückt ist
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Call("_Modus", 1)
ElseIf GUICtrlRead($Intervall_Radio) = 1 Then ;Wenn Intervall gedrückt ist
$Intervall = GUICtrlRead($Intervall_Input) ;Intervall Wert einlesen
If $Intervall <> "" Then ;Wenn Intervall nicht leer ist
Call("_Modus", 2) ;Intervall Modus aufrufen
Else
MsgBox(16, "Fehler", "Bitte einen Intervall angeben") ;Ausgabe wenn Intervall leer ist
EndIf
Else
MsgBox(16, "Fehler", "Bitte einen Modus auswählen") ;Wenn kein Modus angegeben ist
EndIfEndFunc ;==>_Check
[/autoit] [autoit][/autoit] [autoit]Func _End()
[/autoit] [autoit][/autoit] [autoit]
$Stop = 1 ;Setzt Stop auf 1
$ProgrammStatus = 0 ;Setzt lauft auf 0
GUICtrlSetData($Aktueller_Ping, "Aktueller Ping: Ping beendet")
AdlibUnRegister("_Ziel_Status")
FileWriteLine($Ende, $Stop)
IniWrite($ESave, "Running", "Running", "0")
EndFunc ;==>_EndFunc _Datum()
[/autoit] [autoit][/autoit] [autoit]$Heute = @YEAR & "." & @MON & "." & @MDAY & "|" ;Datum heute
[/autoit] [autoit][/autoit] [autoit]
$Time = @HOUR & ":" & @MIN & ":" & @SEC & "|" ;Zeit jetzt
$Datum = $Heute & $Time ; Datum und Zeit zusammensetzenReturn $Datum
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_DatumFunc _Go()
[/autoit] [autoit][/autoit] [autoit]$k = -1
[/autoit] [autoit][/autoit] [autoit]For $l = 1 To $Adressen_Array[0] Step 1 ;solange obejekte im array sind
[/autoit] [autoit][/autoit] [autoit]$k = $k + 1
[/autoit] [autoit][/autoit] [autoit]
$Dat = _GUICtrlListView_GetItemText($Listview, $k, 0) & "|" & _GUICtrlListView_GetItemText($Listview, $k, 1) & "|" & _GUICtrlListView_GetItemText($Listview, $k, 2) & "|" & _GUICtrlListView_GetItemText($Listview, $k, 3) & "|" & $Benutzername & "|" & $Passwort & "|" & $EMail & "|" & $Smtp & "|" & $Port & "|" & $SSL & "|" & $k & "|" & $Intervall & "|" ;schreibt die Daten für die Pingfunktion
Run('"' & @ScriptDir & '\Ping.exe " "' & $Dat & '"')
Sleep(500)Next
[/autoit] [autoit][/autoit] [autoit]$Zeit = $Intervall - 100
[/autoit] [autoit][/autoit] [autoit]Call("_Ziel_Status")
[/autoit] [autoit][/autoit] [autoit]
Call("_Ziel_Status")
AdlibRegister("_Ziel_Status", $Zeit)EndFunc ;==>_Go
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Ziel_Status()
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_DeleteAllItems($Listview2)
[/autoit] [autoit][/autoit] [autoit]$k = -1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$o = -1
$off = 0
$Laufzeit = $Laufzeit + 1For $l = 1 To $Adressen_Array[0] Step 1 ;solange obejekte im array sind
[/autoit] [autoit][/autoit] [autoit]$k = $k + 1
[/autoit] [autoit][/autoit] [autoit]$Status_input = @ScriptDir & "\Status.ini" ;Status einlesen
[/autoit] [autoit][/autoit] [autoit]
$Stat = IniRead($Status_input, $k, "Status", "Fehler beim lesen")$Datum = Call("_Datum") ;Führt Datum aus
[/autoit] [autoit][/autoit] [autoit]If $Stat = "Online" Then
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_SetTextBkColor($Listview, 0x00ff00)$Datum = Call("_Datum") ;Führt Datum aus
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_SetItemText($Listview, $k, _GUICtrlListView_GetItemText($Listview, $k, 3), 3)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_SetItemText($Listview, $k, _GUICtrlListView_GetItemText($Listview, $k, 2), 2)
_GUICtrlListView_SetItemText($Listview, $k, _GUICtrlListView_GetItemText($Listview, $k, 1), 1)
_GUICtrlListView_SetItemText($Listview, $k, _GUICtrlListView_GetItemText($Listview, $k, 0), 0)Else
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_SetTextBkColor($Listview, 0x0000fa)
_GUICtrlListView_SetTextBkColor($Listview2, 0x0000fa)$Datum = Call("_Datum") ;Führt Datum aus
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_SetItemText($Listview, $k, _GUICtrlListView_GetItemText($Listview, $k, 3), 3)
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_SetItemText($Listview, $k, _GUICtrlListView_GetItemText($Listview, $k, 2), 2)
_GUICtrlListView_SetItemText($Listview, $k, _GUICtrlListView_GetItemText($Listview, $k, 1), 1)
_GUICtrlListView_SetItemText($Listview, $k, _GUICtrlListView_GetItemText($Listview, $k, 0), 0)$off = 1
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_SetItemText($Listview, $k, $Stat, 4) ;Status schreiben
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$StatPing = IniRead($Status_input, $k, "Ping", "Fehler beim lesen")
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_SetItemText($Listview, $k, $StatPing, 5) ;Status schreibenIf $off = 1 Then
[/autoit] [autoit][/autoit] [autoit]$o = $o + 1
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateListViewItem("", $Listview2)
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_SetItemText($Listview2, $o, _GUICtrlListView_GetItemText($Listview, $k, 5), 5)
_GUICtrlListView_SetItemText($Listview2, $o, _GUICtrlListView_GetItemText($Listview, $k, 4), 4)
_GUICtrlListView_SetItemText($Listview2, $o, _GUICtrlListView_GetItemText($Listview, $k, 3), 3)
_GUICtrlListView_SetItemText($Listview2, $o, _GUICtrlListView_GetItemText($Listview, $k, 2), 2)
_GUICtrlListView_SetItemText($Listview2, $o, _GUICtrlListView_GetItemText($Listview, $k, 1), 1)
_GUICtrlListView_SetItemText($Listview2, $o, _GUICtrlListView_GetItemText($Listview, $k, 0), 0)$off = 0
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Ziel_Status
[/autoit] [autoit][/autoit] [autoit]Func _SchreibeDaten()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If $ProgrammStatus = 1 Then ;Test ob Ping bereits ausgeführt wird
MsgBox(16, "!!!Stop!!!", "Ping wird gerade ausgeführt")
Else
$Kunde = GUICtrlRead($Kunde_Input)
$Beschreibung = GUICtrlRead($Beschreibung_Input)
$IP = GUICtrlRead($IP_Input)
$Timeout = GUICtrlRead($Timeout_Input)If $Kunde <> "" Then
[/autoit] [autoit][/autoit] [autoit]
If $Beschreibung <> "" Then
If $IP <> "" Then
If $Timeout <> "" Then$Daten = $Kunde & "|" & $Beschreibung & "|" & $IP & "|" & $Timeout & "|"
[/autoit] [autoit][/autoit] [autoit]
FileWriteLine($Adressen, $Daten & @CRLF)Else
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Fehler!!!", "Bitte vergewissern Sie sich, dass alle Felder ausgefüllt sind")
EndIfElse
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Fehler!!!", "Bitte vergewissern Sie sich, dass alle Felder ausgefüllt sind")
EndIfElse
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Fehler!!!", "Bitte vergewissern Sie sich, dass alle Felder ausgefüllt sind")
EndIfElse
[/autoit] [autoit][/autoit] [autoit]
MsgBox(16, "!!!Fehler!!!", "Bitte vergewissern Sie sich, dass alle Felder ausgefüllt sind")
EndIfCall("_LadeDaten")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndIf
EndFunc ;==>_SchreibeDatenFunc _SchreibeEmail()
[/autoit] [autoit][/autoit] [autoit]FileDelete($ESave)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
IniWrite($ESave, "Benutzername", "Benutzername", $Benutzername)
IniWrite($ESave, "EMail", "EMail", $EMail)
IniWrite($ESave, "SMTP", "SMTP", $Smtp)
IniWrite($ESave, "Port", "Port", $Port)
IniWrite($ESave, "SSL", "SSL", $SSL)EndFunc ;==>_SchreibeEmail
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _LadeDaten()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]If $ProgrammStatus = 1 Then
[/autoit] [autoit][/autoit] [autoit]MsgBox(16, "!!!STOP!!!", "Programm läuft gerade")
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_DeleteAllItems($Listview)
[/autoit] [autoit][/autoit] [autoit]
ReDim $Adressen_Array[1]
ReDim $Adressen_Array[500]
_FileReadToArray($Adressen, $Adressen_Array)
For $l = 1 To $Adressen_Array[0] Step 1
GUICtrlCreateListViewItem($Adressen_Array[$l], $Listview)
Next
EndIfIf FileExists($ESave) Then
[/autoit] [autoit][/autoit] [autoit]$Benutzername = IniRead($ESave, "Benutzername", "Benutzername", "Fehler beim auslesen")
[/autoit] [autoit][/autoit] [autoit]
$EMail = IniRead($ESave, "EMail", "EMail", "Fehler beim auslesen")
$Smtp = IniRead($ESave, "SMTP", "SMTP", "Fehler beim auslesen")
$Port = IniRead($ESave, "Port", "Port", "Fehler beim auslesen")
$SSL = IniRead($ESave, "SSL", "SSL", "Fehler beim auslesen")GUICtrlSetData($Benutzername_Input, $Benutzername) ;Benutzername in Feld schreiben
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($Zieladresse_Input, $EMail) ;Email in Feld schreiben
GUICtrlSetData($SMTP_Input, $Smtp) ;Smtp in Feld schreiben
GUICtrlSetData($Port_Input, $Port) ;Port in Feld schreibenIf $SSL <> "" Then
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetState($SSL_Check, $GUI_CHECKED)
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetState($SSL_Check, $GUI_UNCHECKED)
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]$ProgrammStatus = IniRead($ESave, "Running", "Running", "0")
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_LadeDaten
[/autoit]Pingfunktion Code:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#cs --------------------------------------------------------------------------------------------------------
Name: PingfunktionAuthor: I3asti
[/autoit] [autoit][/autoit] [autoit]
#ce ---#NoTrayIcon
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include "file.au3"
#include "mail.au3"
#include "date.au3"
#include "EditConstants.au3"
#include "Array.au3"Dim $IP, $Kunde, $Beschreibung, $Timeout, $Intervall, $File, $t, $Server, $Benutzername, $Passwort, $EMail, $Smtp, $Port, $SSL, $Nummer, $Status_output, $Ping, $Status_Anderung, $Datum_Anderung, $Status, $Ping_output, $Restart
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$FirstRun = 0
$Status_End1 = 1
$Status_End2 = 2
$Ende = @ScriptDir & "\Ende.txt"
$Adressen = @ScriptDir & "\Data.txt"
Global $Stop[5]
$Stop[1] = 0
$Zahler = 0Call("_Ziel_Status")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Datum()
[/autoit] [autoit][/autoit] [autoit]$Heute = @YEAR & "." & @MON & "." & @MDAY & "|" ;Datum heute
[/autoit] [autoit][/autoit] [autoit]
$Time = @HOUR & ":" & @MIN & ":" & @SEC & "|" ;Zeit jetzt
$Datum = $Heute & $Time ; Datum und Zeit zusammensetzenReturn $Datum
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_DatumFunc _FirstRun()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Datum = Call("_Datum") ;Führt Datum aus
[/autoit] [autoit][/autoit] [autoit]
$Datum_Anderung = $Datum ;Datum Anderung wird für Aktuellen Eintrag gesetztIf $Ping Then ;ping ausführen
[/autoit] [autoit][/autoit] [autoit]FileWriteLine($File, "Ping gestartet Status:|Online" & "|" & $Datum & @CRLF) ;positiv
[/autoit] [autoit][/autoit] [autoit]
IniDelete($Status_output, $Nummer, "Status")
IniWrite($Status_output, $Nummer, "Status", "Online")
$Status = 1 ;Status schreiben
$Letzte_Ping = $Datum ; Letzte Ping Zeit setzen
$Status_Anderung = 2Else
[/autoit] [autoit][/autoit] [autoit]FileWriteLine($File, "Ping gestartet Status:|Offline" & "|" & $Datum & @CRLF) ;positiv
[/autoit] [autoit][/autoit] [autoit]
IniDelete($Status_output, $Nummer, "Status")
IniWrite($Status_output, $Nummer, "Status", "Offline")
$Status = 2 ;Status schreiben
$Letzte_Ping = $Datum ; Letzte Ping Zeit setzen
$Status_Anderung = 1EndIf
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_FirstRun
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Status_Anderung($Status)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Datum = Call("_Datum") ;Führt Datum aus
[/autoit] [autoit][/autoit] [autoit]$Letzte_Ping = $Datum
[/autoit] [autoit][/autoit] [autoit]$Letzte_Ping = StringSplit($Letzte_Ping, "|")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
IniDelete($Status_output, $Nummer, "Ping")
IniWrite($Status_output, $Nummer, "Ping", $Letzte_Ping[2])If $Status = 1 Then ;Wird Bei Status 1 ausgeführt
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]If $Status_Anderung = $Status Then ;Wird bei einer Statusänderung ausgeführt
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Sleep(5000)
[/autoit] [autoit][/autoit] [autoit]
$Ping = Ping($IP, $Timeout);Pingt
If $Ping ThenIniDelete($Status_output, $Nummer, "Status")
[/autoit] [autoit][/autoit] [autoit]
IniWrite($Status_output, $Nummer, "Status", "Online")Call("_Schreiben", 1) ;Schreiben war Offline
[/autoit] [autoit][/autoit] [autoit]
$Datum_Anderung = $Datum
$Status_Anderung = 2EndIf
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]If $Status_Anderung = $Status Then ;Wird bei einer Statusänderung ausgeführt
[/autoit] [autoit][/autoit] [autoit]Sleep(5000)
[/autoit] [autoit][/autoit] [autoit]
$Ping = Ping($IP, $Timeout);Pingt
If $Ping ThenElse
[/autoit] [autoit][/autoit] [autoit]IniDelete($Status_output, $Nummer, "Status")
[/autoit] [autoit][/autoit] [autoit]
IniWrite($Status_output, $Nummer, "Status", "Offline")Call("_Schreiben", 2) ;Schreiben war Online
[/autoit] [autoit][/autoit] [autoit]
$Datum_Anderung = $Datum
$Status_Anderung = 1EndIf
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]$FirstRun = 1 ;wird auf 2ten durchlauf gesetzt
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Status_Anderung
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Schreiben($Modus)
[/autoit] [autoit][/autoit] [autoit]If $FirstRun = 1 Then ;beim ersten durchlauf nicht ausführen
[/autoit] [autoit][/autoit] [autoit]$Datum = Call("_Datum") ;Führt Datum aus
[/autoit] [autoit][/autoit] [autoit]If $Modus = 1 Then
[/autoit] [autoit][/autoit] [autoit]Call("_Mail", $Benutzername, $Passwort, $Server & " ist Online gegangen", $EMail, $Smtp, $Port, $SSL)
[/autoit] [autoit][/autoit] [autoit]
$Text = "Server war|Offline|" & $Datum_Anderung & $Datum ;Ausgabetext
FileWriteLine($File, $Text & @CRLF) ;Ausgabe speichernElse
[/autoit] [autoit][/autoit] [autoit]Call("_Mail", $Benutzername, $Passwort, $Server & " ist Offline gegangen", $EMail, $Smtp, $Port, $SSL)
[/autoit] [autoit][/autoit] [autoit]
$Text = "Server war|Online|" & $Datum_Anderung & $Datum ;Ausgabetext
FileWriteLine($File, $Text & @CRLF) ;Ausgabe speichernEndIf
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_SchreibenFunc _Ende()
[/autoit] [autoit][/autoit] [autoit]$Datum = Call("_Datum") ;Führt Datum aus
[/autoit] [autoit][/autoit] [autoit]If $Ping Then ;ping ausführen
[/autoit] [autoit][/autoit] [autoit]
FileWriteLine($File, "Ping beendet Status:|Online" & "|" & $Datum & @CRLF) ;positiv
Else
FileWriteLine($File, "Ping beendet Status:|Offline" & "|" & $Datum & @CRLF);negativ
EndIfExit
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Ende
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Ziel_Status()
[/autoit] [autoit][/autoit] [autoit]$Datum = Call("_Datum") ;Führt Datum aus
[/autoit] [autoit][/autoit] [autoit]If $CmdLine[0] < 1 Then Exit
[/autoit] [autoit][/autoit] [autoit]$string = $CmdLine[1] ;Adresse in string speichern
[/autoit] [autoit][/autoit] [autoit]
$stringsplit = StringSplit($string, "|") ;string splitten$Kunde = $stringsplit[1] ;Kunde in Variable schreiben
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Beschreibung = $stringsplit[2] ;Beschreibung in Variable schreiben
$IP = $stringsplit[3] ;IP in Variable schreiben
$Timeout = $stringsplit[4] ;Timeout in Variable schreiben
$Benutzername = $stringsplit[5] ;Benutzername in Variable schreiben
$Passwort = $stringsplit[6] ;Passwort in Variable schreiben
$EMail = $stringsplit[7] ;EMail in Variable schreiben
$Smtp = $stringsplit[8] ;Smtp in Variable schreiben
$Port = $stringsplit[9] ;Port in Variable schreiben
$SSL = $stringsplit[10] ;SSL in Variable schreiben
$Nummer = $stringsplit[11] ;Nummer in Variable schreiben
$Intervall = $stringsplit[12] ;Intervall in Variable schreiben
$First = $stringsplit[13] ;In Variable schreiben ob Programm schon gelaufen istIf $stringsplit[0] = 15 Then
[/autoit] [autoit][/autoit] [autoit]
$Status = $stringsplit[14] ;Status in Variable schreiben
$Status_Anderung = $stringsplit[15] ;Statusänderung in Variable schreiben$Restart = $CmdLine[1] ;CmdLine in Restart schreiben
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Restart = StringTrimRight($Restart, 4) ;Restart kürzen
EndIfIf $First <> "" Then
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$FirstRun = 1
Else
$FirstRun = 0
$Restart = $CmdLine[1] & "1" ;CmdLine FirstRun auf 1 setzen
EndIfIf $SSL <> "" Then
[/autoit] [autoit][/autoit] [autoit]
$SSL = 1
Else
$SSL = 0
EndIf$Status_output = @ScriptDir & "\Status.ini" ;hier wird der Status gespeichert
[/autoit] [autoit][/autoit] [autoit]If FileExists(@ScriptDir & "\Protokolle\") Then ;wenn der Ordner existiert soll nichts gemacht werden
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Else
DirCreate(@ScriptDir & "\Protokolle") ;wenn nicht soll er erstellt werden
EndIf$Server = $Kunde & "." & $Beschreibung & "(" & $IP & ")"
[/autoit] [autoit][/autoit] [autoit]
$File = @ScriptDir & "\Protokolle\" & $Server & ".txt"
$Server = "Kunde: " & $Kunde & @CRLF & "Beschreibung: " & $Beschreibung & @CRLF & "IP: " & $IP ;File NameWhile 1
[/autoit] [autoit][/autoit] [autoit]$Zahler = $Zahler + 1
[/autoit] [autoit][/autoit] [autoit]If $Zahler > 2500 Then
[/autoit] [autoit][/autoit] [autoit]$Restart &= "|" & $Status & "|" & $Status_Anderung ;Status, Statusänderung hinzufügen
[/autoit] [autoit][/autoit] [autoit]Run('"' & @ScriptDir & '\Ping.exe " "' & $Restart & '"') ;Script neu starten
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
Exit
EndIfIf $t <> 0 Then ;beim ersten ausführen nicht ausführen
[/autoit] [autoit][/autoit] [autoit]
Sleep($Intervall)
EndIf$t = 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Ping = Ping($IP, $Timeout);Pingt
[/autoit] [autoit][/autoit] [autoit]If $FirstRun = 0 Then ;beim ersten durchlauf ausführen
[/autoit] [autoit][/autoit] [autoit]Call("_FirstRun") ;erster durchlauf
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]If $Ping Then ;wenn ping true ist
[/autoit] [autoit][/autoit] [autoit]Call("_Status_Anderung", 1) ;positiv aufruf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Else ;wenn ping false ist
[/autoit] [autoit][/autoit] [autoit]Call("_Status_Anderung", 2) ;negativ aufruf
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]_FileReadToArray($Ende, $Stop)
[/autoit] [autoit][/autoit] [autoit]If $Stop[1] = 1 Then ;leitet exit Sequenz ein
[/autoit] [autoit][/autoit] [autoit]$Datum = Call("_Datum") ;Führt Datum aus
[/autoit] [autoit][/autoit] [autoit]If $Status_End2 = $Status Then ;wenn die Netzwerkverbindung getrennt war
[/autoit] [autoit][/autoit] [autoit]$Letzte_Ping = $Datum
[/autoit] [autoit][/autoit] [autoit]
FileDelete($Status_output)
FileWriteLine($Status_output, "Online")$Letzte_Ping = StringSplit($Letzte_Ping, "|")
[/autoit] [autoit][/autoit] [autoit]
FileDelete($Ping_output)
FileWriteLine($Ping_output, $Letzte_Ping[2])$Text = "Server war|Offline|" & $Datum_Anderung & $Datum ;Ausgabetext
[/autoit] [autoit][/autoit] [autoit]
FileWriteLine($File, $Text & @CRLF) ;Ausgabe speichern
Call("_Ende")ElseIf $Status_End1 = $Status Then ;wenn die Netzwerkverbindung bestand
[/autoit] [autoit][/autoit] [autoit]$Letzte_Ping = $Datum
[/autoit] [autoit][/autoit] [autoit]
FileDelete($Status_output)
FileWriteLine($Status_output, "Offline")$Letzte_Ping = StringSplit($Letzte_Ping, "|")
[/autoit] [autoit][/autoit] [autoit]
FileDelete($Ping_output)
FileWriteLine($Ping_output, $Letzte_Ping[2])$Text = "Server war|Online|" & $Datum_Anderung & $Datum ;Ausgabetext
[/autoit] [autoit][/autoit] [autoit]
FileWriteLine($File, $Text & @CRLF) ;Ausgabe speichern
Call("_Ende")EndIf
[/autoit] [autoit][/autoit] [autoit]ExitLoop
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit]
EndFunc ;==>_Ziel_StatusMail Code:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#cs --------------------------------------------------------------------------------------------------------
Name: mailDescription: Send Mails
[/autoit] [autoit][/autoit] [autoit]Author: Jos
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Changed by I3asti
[/autoit] [autoit][/autoit] [autoit]Added _Mail($Name, $Password, $Body, $ToAddress, $SmtpServer) Function
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#ce --------------------------------------------------------------------------------------------------------;##################################
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Include
;##################################
#include "file.au3"
;##################################
; Variables
;##################################$Subject = "Server-Ping" ; subject from the email - can be anything you want it to be
[/autoit] [autoit][/autoit] [autoit]
$AttachFiles = "" ; the file(s) you want to attach seperated with a ; (Semicolon) - leave blank if not needed
$CcAddress = "" ; address for cc - leave blank if not needed
$BccAddress = "" ; address for bcc - leave blank if not needed
$Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
;~ $IPPort = 25 ; port used for sending the mail
;~ $ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS
;~ $IPPort = 465 ; GMAIL port used for sending the mail
;~ $ssl = 1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS;##################################
[/autoit] [autoit][/autoit] [autoit]
; Script
;##################################
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")Func _Mail($Username, $Password, $Body, $ToAddress, $SmtpServer, $IPPort, $ssl)
[/autoit] [autoit][/autoit] [autoit]$FromName = $Username ; name from who the email was sent
[/autoit] [autoit][/autoit] [autoit]
$stringsplit = StringSplit($Username,"@")
$Username = $stringsplit[1]
$FromAddress = $Username & "@ping.de" ; address from where the mail should come$mail = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_Mail; The UDF
[/autoit]
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance = "Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)
Local $objEmail = ObjCreate("CDO.Message")
$objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
$objEmail.To = $s_ToAddress
Local $i_Error = 0
Local $i_Error_desciption = ""
If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
$objEmail.Subject = $s_Subject
If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then
$objEmail.HTMLBody = $as_Body
Else
$objEmail.Textbody = $as_Body & @CRLF
EndIf
If $s_AttachFiles <> "" Then
Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
For $x = 1 To $S_Files2Attach[0]
$S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x])
;~ ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
If FileExists($S_Files2Attach[$x]) Then
ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF)
$objEmail.AddAttachment($S_Files2Attach[$x])
Else
ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
SetError(1)
Return 0
EndIf
Next
EndIf
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
If Number($IPPort) = 0 Then $IPPort = 25
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
;Authenticated SMTP
If $s_Username <> "" Then
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
EndIf
If $ssl Then
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
EndIf
;Update settings
$objEmail.Configuration.Fields.Update
; Set Email Importance
Switch $s_Importance
Case "High"
$objEmail.Fields.Item("urn:schemas:mailheader:Importance") = "High"
Case "Normal"
$objEmail.Fields.Item("urn:schemas:mailheader:Importance") = "Normal"
Case "Low"
$objEmail.Fields.Item("urn:schemas:mailheader:Importance") = "Low"
EndSwitch
$objEmail.Fields.Update
; Sent the Message
$objEmail.Send
If @error Then
SetError(2)
Return $oMyRet[1]
EndIf
$objEmail = ""
EndFunc ;==>_INetSmtpMailCom
;
;
; Com Error Handler
Func MyErrFunc()
$HexNumber = Hex($oMyError.number,
$oMyRet[0] = $HexNumber
$oMyRet[1] = StringStripWS($oMyError.description, 3)
ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
SetError(1); something to check for when this function returns
Return
EndFunc ;==>MyErrFuncvll hat ja noch jemand Verbesserungsvorschläge
-
[Blockierte Grafik: http://www.fotos-hochladen.net/thumbnail/erase64n81dgmrx_thumb.jpg] Hey,
das ist zwar nicht mein erstes Programm, bin aber wohl noch ziemlich am Anfang.
Funktionsweise:
Spoiler anzeigen
Man trägt einen Ordner ein aus dem Dateien mit einer definierten Endung nach einem gewissen Zeitraum in einen anderen Ordner verschoben werden. Aus diesem anderen Ordner werden die Dateien wiederum nach einem zuvor eingetragenen Zeitraum gelöscht.
Dateipfad eintragen:
Ordner aus dem die Dateien verschoben werden sollen.Neues Verzeichnis:
Ordner in das die Dateien verschoben und nach einem bestimmten Zeitraum gelöscht werden sollen.Endung:
Die Dateiendung der Dateien nach denen gesucht werden soll.Clear:
Zeitraum nachdem die Dateien gelöscht werden sollen.Intervall(Sek.):
In welchem Intervall das Programm ausgeführt werden soll.Check(in Std.):
Wie alt die Datei sein darf bevor sie verschoben wird.Code:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.6.1
Author: I3asti
#ce ----------------------------------------------------------------------------#include "GUIConstants.au3"
[/autoit] [autoit][/autoit] [autoit]
#include "GuiListView.au3"
#include "file.au3"
#include "date.au3"
#include "EditConstants.au3"Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Dim $Datei, $Intervall, $File, $Time, $Log, $Stunde, $Verschiebe, $Endung, $Clear
[/autoit] [autoit][/autoit] [autoit]
Dim $Ordner[5000], $Ordnerneu[5000], $Endungen[5000], $Loeschen[5000]
$File = @ScriptDir & "\Dateien.txt"
$Log = @ScriptDir & "\Log.txt"
$LogD = @ScriptDir & "\LogDelete.txt"#region GUI
[/autoit] [autoit][/autoit] [autoit]
$Erase = GUICreate("Erase", 622, 443, 192, 125)
$Listview = GUICtrlCreateListView("Dateipfad|Neues Verzeichnis|Dateiendung|Clear in Tagen", 8, 8, 609, 279)
GUICtrlSendMsg(-1, 0x101E, 0, 202)
GUICtrlSendMsg(-1, 0x101E, 1, 202)
GUICtrlSendMsg(-1, 0x101E, 2, 100)
GUICtrlSendMsg(-1, 0x101E, 3, 100)
$Dateipfad_Input = GUICtrlCreateInput("", 8, 336, 203, 21)
$Dateipfad_Label = GUICtrlCreateLabel("Dateipfad eingeben:", 8, 312, 148, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Verschiebe_Input = GUICtrlCreateInput("", 222, 336, 203, 21)
$Verschiebe_Label = GUICtrlCreateLabel("Neues Verzeichnis:", 222, 312, 148, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Endung_Input = GUICtrlCreateInput("", 437, 336, 80, 21)
$Endung_Label = GUICtrlCreateLabel("Endung:", 437, 312, 148, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Clear_Input = GUICtrlCreateInput("", 534, 336, 80, 21)
$Clear_Label = GUICtrlCreateLabel("Clear:", 534, 312, 148, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Intervall_Input = GUICtrlCreateInput("", 8, 384, 271, 21)
$Intervall_Label = GUICtrlCreateLabel("Intervall (Sek.):", 8, 360, 148, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Check_Input = GUICtrlCreateInput("", 284, 384, 241, 21)
$Check_Label = GUICtrlCreateLabel("Check (in Std.):", 284, 360, 148, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Eintragen_Button = GUICtrlCreateButton("Eintragen", 534, 371, 83, 33, 0)
$Start_Button = GUICtrlCreateButton("Start", 534, 408, 83, 33, 0)
$Stop_Button = GUICtrlCreateButton("Stop", 448, 408, 83, 33, 0)
$Delete_Button = GUICtrlCreateButton("Löschen", 362, 408, 83, 33, 0)
$Exit_Button = GUICtrlCreateButton("Exit", 8, 408, 83, 33, 0)
$Label_Status = GUICtrlCreateLabel("Programm gestoppt", 100, 420, 100)
$Label_Fehler = GUICtrlCreateLabel("", 200, 420, 150)
GUISetState(@SW_SHOW)
GUICtrlSetOnEvent($Exit_Button, "_Ende")
GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")
GUICtrlSetOnEvent($Start_Button, "_Start")
GUICtrlSetOnEvent($Stop_Button, "_Stop")
GUICtrlSetOnEvent($Eintragen_Button, "_Eintragen")
GUICtrlSetOnEvent($Delete_Button, "_Delete")
#endregion GUI_Load()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]Sleep(100)
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit]Func _Start()
[/autoit] [autoit][/autoit] [autoit]$Intervall = GUICtrlRead($Intervall_Input) ;Intervall in Variable schreiben
[/autoit] [autoit][/autoit] [autoit]
$Stunde = GUICtrlRead($Check_Input) ;Checkzeit in Variable schreiben
$Intervall = $Intervall * 1000 ;Intervall Standard in SekundenIf $Intervall <> "" Then
[/autoit] [autoit][/autoit] [autoit]If $Stunde <> "" Then
[/autoit] [autoit][/autoit] [autoit]$Stunde = _TimeToTicks($Stunde, 00, 00)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($Label_Status, "Programm gestartet") ;Programm gestartet als Label setzen
AdlibRegister("_Vergleich", $Intervall) ;startet VergleichElse
[/autoit] [autoit][/autoit] [autoit]MsgBox(16, "Fehler", "Bitte Checkzeit eingeben")
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]MsgBox(16, "Fehler", "Bitte Intervall eintragen") ;Fehlermeldung
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Start
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Stop()
[/autoit] [autoit][/autoit] [autoit]AdlibUnRegister("_Vergleich") ;beendet Vergleich
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($Label_Status, "Programm gestopt") ;Programm gestopt als Label setzenEndFunc ;==>_Stop
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Vergleich()
[/autoit] [autoit][/autoit] [autoit]If $Ordner[0] <> 0 Then ;überprüft ob Ordner vorhanden sind
[/autoit] [autoit][/autoit] [autoit]For $k = 1 To $Ordner[0] ;solange Dateien im Array sind
[/autoit] [autoit][/autoit] [autoit]If FileExists($Ordnerneu[$k]) Then ;Test ob der Ordner existiert
[/autoit] [autoit][/autoit] [autoit]$AlteDateien = _FileListToArray($Ordnerneu[$k], "*" & $Endungen[$k], 1) ;Liste mit files in Array schreiben
[/autoit] [autoit][/autoit] [autoit]If IsArray($AlteDateien) Then ;überprüft ob $Dateien ein Array ist
[/autoit] [autoit][/autoit] [autoit]For $l = 1 To $AlteDateien[0] ;solange Dateien im Array sind
[/autoit] [autoit][/autoit] [autoit]$Zusammengesetzt = $Ordnerneu[$k] & $AlteDateien[$l]
[/autoit] [autoit][/autoit] [autoit]If FileExists($Zusammengesetzt) Then ;wenn Datei existiert
[/autoit] [autoit][/autoit] [autoit]$Time = FileGetTime($Zusammengesetzt)
[/autoit] [autoit][/autoit] [autoit]
$DateiTag = $Time[0] & "/" & $Time[1] & "/" & $Time[2] & " 00:00:00" ;Datei Tag schreiben$SystemTag = @YEAR & "/" & @MON & "/" & @MDAY & " 00:00:00" ;Datum heute
[/autoit] [autoit][/autoit] [autoit]$Differenz = _DateDiff("D", $DateiTag, $SystemTag) ;Differenz zwischen tag
[/autoit] [autoit][/autoit] [autoit]If $Differenz >= $Loeschen[$k] Then
[/autoit] [autoit][/autoit] [autoit]FileDelete($Zusammengesetzt) ;Datei löschen
[/autoit] [autoit][/autoit] [autoit]
FileWriteLine($LogD, $Zusammengesetzt & @CRLF) ;Log schreibenEndIf
[/autoit] [autoit][/autoit] [autoit]
EndIfNext
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetData($Label_Fehler, "Dateien nicht gefunden") ;Fehlerausgabe wenn keine Dateien gefunden werden
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetData($Label_Fehler, "Ordner nicht gefunden") ;Fehlerausgabe wenn kein Ordner gefunden wurde
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]If FileExists($Ordner[$k]) Then ;Test ob der Ordner existiert
[/autoit] [autoit][/autoit] [autoit]$Dateien = _FileListToArray($Ordner[$k], "*" & $Endungen[$k], 1) ;Liste mit files in Array schreiben
[/autoit] [autoit][/autoit] [autoit]If IsArray($Dateien) Then ;überprüft ob $Dateien ein Array ist
[/autoit] [autoit][/autoit] [autoit]For $l = 1 To $Dateien[0] ;solange Dateien im Array sind
[/autoit] [autoit][/autoit] [autoit]$Zusammengesetzt = $Ordner[$k] & $Dateien[$l]
[/autoit] [autoit][/autoit] [autoit]If FileExists($Zusammengesetzt) Then ;wenn Datei existiert
[/autoit] [autoit][/autoit] [autoit]$Time = FileGetTime($Zusammengesetzt)
[/autoit] [autoit][/autoit] [autoit]
$DateiTag = $Time[0] & "/" & $Time[1] & "/" & $Time[2] & " 00:00:00" ;Datei Tag schreiben
$DateiZeit = _TimeToTicks($Time[3], $Time[4], $Time[5]) ;Datei Zeit in Ticks wandeln$SystemTag = @YEAR & "/" & @MON & "/" & @MDAY & " 00:00:00" ;Datum heute
[/autoit] [autoit][/autoit] [autoit]
$SystemZeit = _TimeToTicks(@HOUR, @MIN, @SEC);Zeit jetzt$Differenz = _DateDiff("D", $DateiTag, $SystemTag) ;Differenz zwischen tag
[/autoit] [autoit][/autoit] [autoit]If $Differenz >= 1 Then
[/autoit] [autoit][/autoit] [autoit]$Zeit = $Differenz * 24
[/autoit] [autoit][/autoit] [autoit]
$SystemZeit = $SystemZeit + _TimeToTicks($Zeit, 00, 00) ;Systemzeit plus 1 TagEndIf
[/autoit] [autoit][/autoit] [autoit]$Differenz = $SystemZeit - $DateiZeit ;Differenz errechnen
[/autoit] [autoit][/autoit] [autoit]If $Differenz > $Stunde Then ;wenn Differenz größer 1 Stunde
[/autoit] [autoit][/autoit] [autoit]
FileSetTime($Zusammengesetzt, @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC)
FileMove($Zusammengesetzt, $Ordnerneu[$k] & $Dateien[$l], 9) ;Verschiebt die Datei
FileWriteLine($Log, $Zusammengesetzt & @CRLF) ;Log schreiben
EndIfEndIf
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetData($Label_Fehler, "Dateien nicht gefunden") ;Fehlerausgabe wenn keine Dateien gefunden werden
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetData($Label_Fehler, "Ordner nicht gefunden") ;Fehlerausgabe wenn kein Ordner gefunden wurde
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetData($Label_Fehler, "Keine Ordner gefunden") ;Fehlerausgabe wenn kein Ordner gefunden wurde
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Vergleich
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Eintragen()
[/autoit] [autoit][/autoit] [autoit]$Datei = GUICtrlRead($Dateipfad_Input) ;Dateipfad in Variable schreiben
[/autoit] [autoit][/autoit] [autoit]
$Verschiebe = GUICtrlRead($Verschiebe_Input) ;Neuen Dateipfad in Variable schreiben
$Endung = GUICtrlRead($Endung_Input) ;Dateiendung in Variable schreiben
$Clear = GUICtrlRead($Clear_Input) ;Zeitraum zum löschen in Variable schreibenIf $Datei <> "" Then ;wenn Dateipfad nicht leer ist
[/autoit] [autoit][/autoit] [autoit]If $Verschiebe <> "" Then ;wenn der neue Dateipfad nicht leer ist
[/autoit] [autoit][/autoit] [autoit]If $Endung <> "" Then ;wenn keine Dateiendung angegeben ist
[/autoit] [autoit][/autoit] [autoit]If StringRegExp($Endung, "\.") Then ;wenn ein Punkt in der Dateiendung enthalten ist
[/autoit] [autoit][/autoit] [autoit]If $Clear <> "" Then ;wenn ein Zeitraum eingetragen wurde
[/autoit] [autoit][/autoit] [autoit]FileWriteLine($File, $Datei & "|" & $Verschiebe & "|" & $Endung & "|" & $Clear & @CRLF) ;Dateipfad in Datei schreiben
[/autoit] [autoit][/autoit] [autoit]
_Load() ;Load ausführenElse
[/autoit] [autoit][/autoit] [autoit]MsgBox(16, "Fehler", "Bitte einen Zeitraum zum löschen der alten Daten angeben") ;wenn kein Zeitraum eingetragen wurde
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]MsgBox(16, "Fehler", "Die Dateiendung muss einen Punkt enthalten") ;wenn kein Punkt in der Dateiendung enthalten ist
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]MsgBox(16, "Fehler", "Bitte eine Dateiendung angeben") ;wenn keine Dateiendung angegeben ist
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]MsgBox(16, "Fehler", "Bitte neues Verzeichnis angeben") ;wenn kein neues Verzeichnis angegeben ist
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]MsgBox(16, "Fehler", "Bitte Dateipfad eintragen") ;wenn kein Dateipfad eingetragen ist
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Eintragen
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Load()
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_DeleteAllItems($Listview) ;leert das Listview
[/autoit] [autoit][/autoit] [autoit]ReDim $Ordner[1]
[/autoit] [autoit][/autoit] [autoit]
ReDim $Ordner[5000]_FileReadToArray($File, $Ordner) ;liest die Dateipfade ins Array
[/autoit] [autoit][/autoit] [autoit]For $l = 1 To $Ordner[0] Step 1
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateListViewItem($Ordner[$l], $Listview) ;in Listview eintragen
NextReDim $Ordner[1]
[/autoit] [autoit][/autoit] [autoit]
ReDim $Ordner[5000]
ReDim $Ordnerneu[1]
ReDim $Ordnerneu[5000]
ReDim $Endungen[1]
ReDim $Endungen[5000]
ReDim $Loeschen[1]
ReDim $Loeschen[5000]$k = -1
[/autoit] [autoit][/autoit] [autoit]For $l = 1 To $Ordner[0] Step 1
[/autoit] [autoit][/autoit] [autoit]$k = $k + 1
[/autoit] [autoit][/autoit] [autoit]$Ordner[$l] = _GUICtrlListView_GetItemText($Listview, $k, 0) ;Ordner eintragen
[/autoit] [autoit][/autoit] [autoit]
$Ordnerneu[$l] = _GUICtrlListView_GetItemText($Listview, $k, 1) ;Neues Verzeichnis eintragen
$Endungen[$l] = _GUICtrlListView_GetItemText($Listview, $k, 2) ;Dateiendung eintragen
$Loeschen[$l] = _GUICtrlListView_GetItemText($Listview, $k, 3) ;Zeitraum eintragenNext
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Load
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Delete()
[/autoit] [autoit][/autoit] [autoit]$Del = _GUICtrlListView_GetSelectedIndices($Listview) ;Ausgewählter Eintrag in Del schreiben
[/autoit] [autoit][/autoit] [autoit]
If $Del = "" Then
MsgBox(16, "!!!Fehler!!!", "Wählen sie einen Eintrag aus") ;wenn kein Eintrag ausgewählt war
Else
$Del = $Del + 1 ;Del um eins erhöhen
_ArrayDelete($Ordner, $Del) ;Eintrag aus Array löschen
$k = 0 ;Zähler setzen
$d = 0 ;Zähler setzenFileDelete($File) ;Liste löschen
[/autoit] [autoit][/autoit] [autoit]For $l = 1 To $Ordner[0] Step 1
[/autoit] [autoit][/autoit] [autoit]
If $d <> 0 Then ;beim ersten durchlauf nicht durchführen
$k = $k + 1
FileWriteLine($File, $Ordner[$k] & "|" & $Ordnerneu[$k] & "|" & $Endungen[$k] & "|" & $Loeschen[$l] & @CRLF) ;Eitnräge schreiben
EndIf
$d = 1
Next
_Load() ;Daten laden
EndIfEndFunc ;==>_Delete
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Ende()
[/autoit] [autoit][/autoit] [autoit][/autoit]
Exit
EndFunc ;==>_EndeFalls noch jemand Verbesserungsvorschläge hat immer gerne.
Programmname lass ich mir auch gerne einen neuen (passenderen) vorschlagen.