1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. I3asti

Beiträge von I3asti

  • PingList

    • I3asti
    • 9. August 2012 um 14:07

    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 ^^

  • PingList

    • I3asti
    • 12. Juli 2012 um 12:35

    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.

  • PingList

    • I3asti
    • 26. März 2012 um 10:27

    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

  • PingList

    • I3asti
    • 26. März 2012 um 08:55

    Hab jetzt doch ne Fehlermeldung bekommen bei der Pingfunktion.

    [Blockierte Grafik: http://www7.pic-upload.de/thumb/22.03.12/d84kxa3piwqx.jpg]

  • PingList

    • I3asti
    • 19. März 2012 um 15:43

    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. :huh: Ich habe es jetzt nochmal gestartet und lasse es laufen um zu schauen ob das Problem wieder kommt.

  • PingList

    • I3asti
    • 17. März 2012 um 00:17
    Zitat von L3viathan

    In Zeile 131/132 vom Pinglist Code solltest du statt StringRegExp einfach nur StringInStr verwenden, das ist schneller.

    ^ ^ geändert danke :D

  • PingList

    • I3asti
    • 15. März 2012 um 11:12

    [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 neustarten

    Funktionsweise:

    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]


    #cs --------------------------------------------------------------------------------------------------------
    Name: PingList

    [/autoit] [autoit][/autoit] [autoit]

    Description: Ping a list of Computers, write protocols, send e-mails if a Computer change his mode

    [/autoit] [autoit][/autoit] [autoit]

    Author: I3asti
    #ce --------------------------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>
    #include <date.au3>
    #include <GuiListView.au3>
    #include <file.au3>
    #include <mail.au3>
    #include <EditConstants.au3>
    #include <StructureConstants.au3>
    #include <Clipboard.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    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
    $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

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #region GUI
    $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 GUI

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Call("_LadeDaten")

    [/autoit] [autoit][/autoit] [autoit]

    If $ProgrammStatus = 1 Then
    AdlibRegister("_Ziel_Status", 1000)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    While 1

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(100) ;damit er nicht 100% cpu verbrauch

    [/autoit] [autoit][/autoit] [autoit]

    If $Laufzeit > 1000 Then
    Run(@ScriptName)
    Sleep(100)
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Testmail()

    [/autoit] [autoit][/autoit] [autoit]

    $Benutzername = GUICtrlRead($Benutzername_Input)
    $Passwort = GUICtrlRead($Passwort_Input)
    $EMail = GUICtrlRead($Zieladresse_Input)
    $Smtp = GUICtrlRead($SMTP_Input)
    $Port = GUICtrlRead($Port_Input)

    [/autoit] [autoit][/autoit] [autoit]

    If $Benutzername <> "" Then ;Wenn Benutzername und Passwort nicht leer sind
    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, " ") Then

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(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")
    Call("_Mail", $Benutzername, $Passwort, "Testmail", $EMail, $Smtp, $Port, $SSL)

    [/autoit] [autoit][/autoit] [autoit]

    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
    MsgBox(16, "!!!Stop!!!", "Geben Sie einen Port an")
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Stop!!!", "Geben Sie einen SMTP-Server an")
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Stop!!!", "Geben Sie eine Zieladresse an")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Stop!!!", "Geben Sie ein Passwort an")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Stop!!!", "Geben Sie einen Benutzernamen an")
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_Testmail

    [/autoit] [autoit][/autoit] [autoit]

    Func _Delete()
    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 setzen

    [/autoit] [autoit][/autoit] [autoit]

    FileDelete($Adressen) ;Liste löschen

    [/autoit] [autoit][/autoit] [autoit]

    For $l = 1 To $Adressen_Array[0] Step 1
    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 ;==>_Delete

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Start()

    [/autoit] [autoit][/autoit] [autoit]

    FileDelete($Ende)

    [/autoit] [autoit][/autoit] [autoit]

    $Benutzername = GUICtrlRead($Benutzername_Input)
    $Passwort = GUICtrlRead($Passwort_Input)
    $EMail = GUICtrlRead($Zieladresse_Input)
    $Smtp = GUICtrlRead($SMTP_Input)
    $Port = GUICtrlRead($Port_Input)

    [/autoit] [autoit][/autoit] [autoit]

    If $ProgrammStatus = 1 Then ;Test ob Ping bereits ausgeführt wird
    MsgBox(16, "!!!Stop!!!", "Ping läuft bereits")
    Else

    [/autoit] [autoit][/autoit] [autoit]

    If $Benutzername <> "" Then ;Wenn Benutzername und Passwort nicht leer sind
    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, " ") Then

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(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")
    IniWrite($ESave, "Running", "Running", "1")
    $Intervall = "" ;Setzt Intervall zurück
    Call("_Check")

    [/autoit] [autoit][/autoit] [autoit]

    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
    MsgBox(16, "!!!Stop!!!", "Geben Sie einen Port an")
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Stop!!!", "Geben Sie einen SMTP-Server an")
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Stop!!!", "Geben Sie eine Zieladresse an")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Stop!!!", "Geben Sie ein Passwort an")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Stop!!!", "Geben Sie einen Benutzernamen an")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    EndFunc ;==>_Start

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Close()

    [/autoit] [autoit][/autoit] [autoit]

    If $ProgrammStatus <> 0 Then ;Test ob Ping ausgeführt wird
    MsgBox(16, "!!!Stop!!!", "Ping läuft noch bitte erst Ping beenden")
    Else
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_Close

    [/autoit] [autoit][/autoit] [autoit]

    Func _Modus($Modus)

    [/autoit] [autoit][/autoit] [autoit]

    $FirstRun = 1 ;Setzt FirstRun auf 0
    $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")

    [/autoit] [autoit][/autoit] [autoit]

    If $Modus = 1 Then
    $Intervall = 1000
    Call("_Go") ;startet _Start
    ElseIf $Modus = 2 Then
    $Intervall = $Intervall * 1000
    Call("_Go") ;startet _Start
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_Modus

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Check()

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Dauerping_Radio) = 1 Then ;Wenn Dauerping gedrückt ist
    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
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_Check

    [/autoit] [autoit][/autoit] [autoit]

    Func _End()
    $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 ;==>_End

    [/autoit] [autoit][/autoit] [autoit]

    Func _Datum()

    [/autoit] [autoit][/autoit] [autoit]

    $Heute = @YEAR & "." & @MON & "." & @MDAY & "|" ;Datum heute
    $Time = @HOUR & ":" & @MIN & ":" & @SEC & "|" ;Zeit jetzt
    $Datum = $Heute & $Time ; Datum und Zeit zusammensetzen

    [/autoit] [autoit][/autoit] [autoit]

    Return $Datum
    EndFunc ;==>_Datum

    [/autoit] [autoit][/autoit] [autoit]

    Func _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
    $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)

    [/autoit] [autoit][/autoit] [autoit]

    Next

    [/autoit] [autoit][/autoit] [autoit]

    $Zeit = $Intervall - 100

    [/autoit] [autoit][/autoit] [autoit]

    Call("_Ziel_Status")
    Call("_Ziel_Status")
    AdlibRegister("_Ziel_Status", $Zeit)

    [/autoit] [autoit][/autoit] [autoit]

    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
    $o = -1
    $off = 0
    $Laufzeit = $Laufzeit + 1

    [/autoit] [autoit][/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]

    $Status_input = @ScriptDir & "\Status.ini" ;Status einlesen
    $Stat = IniRead($Status_input, $k, "Status", "Fehler beim lesen")

    [/autoit] [autoit][/autoit] [autoit]

    $Datum = Call("_Datum") ;Führt Datum aus

    [/autoit] [autoit][/autoit] [autoit]

    If $Stat = "Online" Then
    _GUICtrlListView_SetTextBkColor($Listview, 0x00ff00)

    [/autoit] [autoit][/autoit] [autoit]

    $Datum = Call("_Datum") ;Führt Datum aus

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_SetItemText($Listview, $k, _GUICtrlListView_GetItemText($Listview, $k, 3), 3)
    _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)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Else
    _GUICtrlListView_SetTextBkColor($Listview, 0x0000fa)
    _GUICtrlListView_SetTextBkColor($Listview2, 0x0000fa)

    [/autoit] [autoit][/autoit] [autoit]

    $Datum = Call("_Datum") ;Führt Datum aus

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_SetItemText($Listview, $k, _GUICtrlListView_GetItemText($Listview, $k, 3), 3)
    _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)

    [/autoit] [autoit][/autoit] [autoit]

    $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")
    _GUICtrlListView_SetItemText($Listview, $k, $StatPing, 5) ;Status schreiben

    [/autoit] [autoit][/autoit] [autoit]

    If $off = 1 Then

    [/autoit] [autoit][/autoit] [autoit]

    $o = $o + 1

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateListViewItem("", $Listview2)
    _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)

    [/autoit] [autoit][/autoit] [autoit]

    $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()
    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)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $Kunde <> "" Then
    If $Beschreibung <> "" Then
    If $IP <> "" Then
    If $Timeout <> "" Then

    [/autoit] [autoit][/autoit] [autoit]

    $Daten = $Kunde & "|" & $Beschreibung & "|" & $IP & "|" & $Timeout & "|"
    FileWriteLine($Adressen, $Daten & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Fehler!!!", "Bitte vergewissern Sie sich, dass alle Felder ausgefüllt sind")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Fehler!!!", "Bitte vergewissern Sie sich, dass alle Felder ausgefüllt sind")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Fehler!!!", "Bitte vergewissern Sie sich, dass alle Felder ausgefüllt sind")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(16, "!!!Fehler!!!", "Bitte vergewissern Sie sich, dass alle Felder ausgefüllt sind")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Call("_LadeDaten")
    EndIf
    EndFunc ;==>_SchreibeDaten

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _SchreibeEmail()

    [/autoit] [autoit][/autoit] [autoit]

    FileDelete($ESave)
    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)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    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)
    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
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($ESave) Then

    [/autoit] [autoit][/autoit] [autoit]

    $Benutzername = IniRead($ESave, "Benutzername", "Benutzername", "Fehler beim auslesen")
    $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")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetData($Benutzername_Input, $Benutzername) ;Benutzername in Feld schreiben
    GUICtrlSetData($Zieladresse_Input, $EMail) ;Email in Feld schreiben
    GUICtrlSetData($SMTP_Input, $Smtp) ;Smtp in Feld schreiben
    GUICtrlSetData($Port_Input, $Port) ;Port in Feld schreiben

    [/autoit] [autoit][/autoit] [autoit]

    If $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]


    #cs --------------------------------------------------------------------------------------------------------
    Name: Pingfunktion

    [/autoit] [autoit][/autoit] [autoit]

    Author: I3asti
    #ce ---

    [/autoit] [autoit][/autoit] [autoit]

    #NoTrayIcon
    #include "file.au3"
    #include "mail.au3"
    #include "date.au3"
    #include "EditConstants.au3"
    #include "Array.au3"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    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
    $FirstRun = 0
    $Status_End1 = 1
    $Status_End2 = 2
    $Ende = @ScriptDir & "\Ende.txt"
    $Adressen = @ScriptDir & "\Data.txt"
    Global $Stop[5]
    $Stop[1] = 0
    $Zahler = 0

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Call("_Ziel_Status")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Datum()

    [/autoit] [autoit][/autoit] [autoit]

    $Heute = @YEAR & "." & @MON & "." & @MDAY & "|" ;Datum heute
    $Time = @HOUR & ":" & @MIN & ":" & @SEC & "|" ;Zeit jetzt
    $Datum = $Heute & $Time ; Datum und Zeit zusammensetzen

    [/autoit] [autoit][/autoit] [autoit]

    Return $Datum
    EndFunc ;==>_Datum

    [/autoit] [autoit][/autoit] [autoit]

    Func _FirstRun()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Datum = Call("_Datum") ;Führt Datum aus
    $Datum_Anderung = $Datum ;Datum Anderung wird für Aktuellen Eintrag gesetzt

    [/autoit] [autoit][/autoit] [autoit]

    If $Ping Then ;ping ausführen

    [/autoit] [autoit][/autoit] [autoit]

    FileWriteLine($File, "Ping gestartet Status:|Online" & "|" & $Datum & @CRLF) ;positiv
    IniDelete($Status_output, $Nummer, "Status")
    IniWrite($Status_output, $Nummer, "Status", "Online")
    $Status = 1 ;Status schreiben
    $Letzte_Ping = $Datum ; Letzte Ping Zeit setzen
    $Status_Anderung = 2

    [/autoit] [autoit][/autoit] [autoit]

    Else

    [/autoit] [autoit][/autoit] [autoit]

    FileWriteLine($File, "Ping gestartet Status:|Offline" & "|" & $Datum & @CRLF) ;positiv
    IniDelete($Status_output, $Nummer, "Status")
    IniWrite($Status_output, $Nummer, "Status", "Offline")
    $Status = 2 ;Status schreiben
    $Letzte_Ping = $Datum ; Letzte Ping Zeit setzen
    $Status_Anderung = 1

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/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, "|")
    IniDelete($Status_output, $Nummer, "Ping")
    IniWrite($Status_output, $Nummer, "Ping", $Letzte_Ping[2])

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    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)
    $Ping = Ping($IP, $Timeout);Pingt
    If $Ping Then

    [/autoit] [autoit][/autoit] [autoit]

    IniDelete($Status_output, $Nummer, "Status")
    IniWrite($Status_output, $Nummer, "Status", "Online")

    [/autoit] [autoit][/autoit] [autoit]

    Call("_Schreiben", 1) ;Schreiben war Offline
    $Datum_Anderung = $Datum
    $Status_Anderung = 2

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/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)
    $Ping = Ping($IP, $Timeout);Pingt
    If $Ping Then

    [/autoit] [autoit][/autoit] [autoit]

    Else

    [/autoit] [autoit][/autoit] [autoit]

    IniDelete($Status_output, $Nummer, "Status")
    IniWrite($Status_output, $Nummer, "Status", "Offline")

    [/autoit] [autoit][/autoit] [autoit]

    Call("_Schreiben", 2) ;Schreiben war Online
    $Datum_Anderung = $Datum
    $Status_Anderung = 1

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/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)
    $Text = "Server war|Offline|" & $Datum_Anderung & $Datum ;Ausgabetext
    FileWriteLine($File, $Text & @CRLF) ;Ausgabe speichern

    [/autoit] [autoit][/autoit] [autoit]

    Else

    [/autoit] [autoit][/autoit] [autoit]

    Call("_Mail", $Benutzername, $Passwort, $Server & " ist Offline gegangen", $EMail, $Smtp, $Port, $SSL)
    $Text = "Server war|Online|" & $Datum_Anderung & $Datum ;Ausgabetext
    FileWriteLine($File, $Text & @CRLF) ;Ausgabe speichern

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    EndFunc ;==>_Schreiben

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Ende()

    [/autoit] [autoit][/autoit] [autoit]

    $Datum = Call("_Datum") ;Führt Datum aus

    [/autoit] [autoit][/autoit] [autoit]

    If $Ping Then ;ping ausführen
    FileWriteLine($File, "Ping beendet Status:|Online" & "|" & $Datum & @CRLF) ;positiv
    Else
    FileWriteLine($File, "Ping beendet Status:|Offline" & "|" & $Datum & @CRLF);negativ
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Exit

    [/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
    $stringsplit = StringSplit($string, "|") ;string splitten

    [/autoit] [autoit][/autoit] [autoit]

    $Kunde = $stringsplit[1] ;Kunde in Variable schreiben
    $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 ist

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $stringsplit[0] = 15 Then
    $Status = $stringsplit[14] ;Status in Variable schreiben
    $Status_Anderung = $stringsplit[15] ;Statusänderung in Variable schreiben

    [/autoit] [autoit][/autoit] [autoit]

    $Restart = $CmdLine[1] ;CmdLine in Restart schreiben
    $Restart = StringTrimRight($Restart, 4) ;Restart kürzen
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $First <> "" Then
    $FirstRun = 1
    Else
    $FirstRun = 0
    $Restart = $CmdLine[1] & "1" ;CmdLine FirstRun auf 1 setzen
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $SSL <> "" Then
    $SSL = 1
    Else
    $SSL = 0
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $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
    Else
    DirCreate(@ScriptDir & "\Protokolle") ;wenn nicht soll er erstellt werden
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Server = $Kunde & "." & $Beschreibung & "(" & $IP & ")"
    $File = @ScriptDir & "\Protokolle\" & $Server & ".txt"
    $Server = "Kunde: " & $Kunde & @CRLF & "Beschreibung: " & $Beschreibung & @CRLF & "IP: " & $IP ;File Name

    [/autoit] [autoit][/autoit] [autoit]

    While 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
    Sleep(100)
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $t <> 0 Then ;beim ersten ausführen nicht ausführen
    Sleep($Intervall)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $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
    FileDelete($Status_output)
    FileWriteLine($Status_output, "Online")

    [/autoit] [autoit][/autoit] [autoit]

    $Letzte_Ping = StringSplit($Letzte_Ping, "|")
    FileDelete($Ping_output)
    FileWriteLine($Ping_output, $Letzte_Ping[2])

    [/autoit] [autoit][/autoit] [autoit]

    $Text = "Server war|Offline|" & $Datum_Anderung & $Datum ;Ausgabetext
    FileWriteLine($File, $Text & @CRLF) ;Ausgabe speichern
    Call("_Ende")

    [/autoit] [autoit][/autoit] [autoit]

    ElseIf $Status_End1 = $Status Then ;wenn die Netzwerkverbindung bestand

    [/autoit] [autoit][/autoit] [autoit]

    $Letzte_Ping = $Datum
    FileDelete($Status_output)
    FileWriteLine($Status_output, "Offline")

    [/autoit] [autoit][/autoit] [autoit]

    $Letzte_Ping = StringSplit($Letzte_Ping, "|")
    FileDelete($Ping_output)
    FileWriteLine($Ping_output, $Letzte_Ping[2])

    [/autoit] [autoit][/autoit] [autoit]

    $Text = "Server war|Online|" & $Datum_Anderung & $Datum ;Ausgabetext
    FileWriteLine($File, $Text & @CRLF) ;Ausgabe speichern
    Call("_Ende")

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    WEnd
    EndFunc ;==>_Ziel_Status

    [/autoit]

    Mail Code:

    Spoiler anzeigen
    [autoit]


    #cs --------------------------------------------------------------------------------------------------------
    Name: mail

    [/autoit] [autoit][/autoit] [autoit]

    Description: 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
    #ce --------------------------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;##################################
    ; Include
    ;##################################
    #include "file.au3"
    ;##################################
    ; Variables
    ;##################################

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Subject = "Server-Ping" ; subject from the email - can be anything you want it to be
    $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")

    [/autoit] [autoit][/autoit] [autoit]

    Func _Mail($Username, $Password, $Body, $ToAddress, $SmtpServer, $IPPort, $ssl)

    [/autoit] [autoit][/autoit] [autoit]

    $FromName = $Username ; name from who the email was sent
    $stringsplit = StringSplit($Username,"@")
    $Username = $stringsplit[1]
    $FromAddress = $Username & "@ping.de" ; address from where the mail should come

    [/autoit] [autoit][/autoit] [autoit]

    $mail = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
    EndFunc ;==>_Mail

    [/autoit] [autoit][/autoit] [autoit]

    ; The UDF
    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, 8)
    $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 ;==>MyErrFunc

    [/autoit]

    vll hat ja noch jemand Verbesserungsvorschläge :D

  • Erase

    • I3asti
    • 12. März 2012 um 14:27

    [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]


    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.6.1
    Author: I3asti

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    #include "GUIConstants.au3"
    #include "GuiListView.au3"
    #include "file.au3"
    #include "date.au3"
    #include "EditConstants.au3"

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Datei, $Intervall, $File, $Time, $Log, $Stunde, $Verschiebe, $Endung, $Clear
    Dim $Ordner[5000], $Ordnerneu[5000], $Endungen[5000], $Loeschen[5000]
    $File = @ScriptDir & "\Dateien.txt"
    $Log = @ScriptDir & "\Log.txt"
    $LogD = @ScriptDir & "\LogDelete.txt"

    [/autoit] [autoit][/autoit] [autoit]

    #region GUI
    $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

    [/autoit] [autoit][/autoit] [autoit]

    _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
    $Stunde = GUICtrlRead($Check_Input) ;Checkzeit in Variable schreiben
    $Intervall = $Intervall * 1000 ;Intervall Standard in Sekunden

    [/autoit] [autoit][/autoit] [autoit]

    If $Intervall <> "" Then

    [/autoit] [autoit][/autoit] [autoit]

    If $Stunde <> "" Then

    [/autoit] [autoit][/autoit] [autoit]

    $Stunde = _TimeToTicks($Stunde, 00, 00)
    GUICtrlSetData($Label_Status, "Programm gestartet") ;Programm gestartet als Label setzen
    AdlibRegister("_Vergleich", $Intervall) ;startet Vergleich

    [/autoit] [autoit][/autoit] [autoit]

    Else

    [/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
    GUICtrlSetData($Label_Status, "Programm gestopt") ;Programm gestopt als Label setzen

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_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)
    $DateiTag = $Time[0] & "/" & $Time[1] & "/" & $Time[2] & " 00:00:00" ;Datei Tag schreiben

    [/autoit] [autoit][/autoit] [autoit]

    $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
    FileWriteLine($LogD, $Zusammengesetzt & @CRLF) ;Log schreiben

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    EndIf

    [/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][/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)
    $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

    [/autoit] [autoit][/autoit] [autoit]

    $SystemTag = @YEAR & "/" & @MON & "/" & @MDAY & " 00:00:00" ;Datum heute
    $SystemZeit = _TimeToTicks(@HOUR, @MIN, @SEC);Zeit jetzt

    [/autoit] [autoit][/autoit] [autoit]

    $Differenz = _DateDiff("D", $DateiTag, $SystemTag) ;Differenz zwischen tag

    [/autoit] [autoit][/autoit] [autoit]

    If $Differenz >= 1 Then

    [/autoit] [autoit][/autoit] [autoit]

    $Zeit = $Differenz * 24
    $SystemZeit = $SystemZeit + _TimeToTicks($Zeit, 00, 00) ;Systemzeit plus 1 Tag

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Differenz = $SystemZeit - $DateiZeit ;Differenz errechnen

    [/autoit] [autoit][/autoit] [autoit]

    If $Differenz > $Stunde Then ;wenn Differenz größer 1 Stunde
    FileSetTime($Zusammengesetzt, @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC)
    FileMove($Zusammengesetzt, $Ordnerneu[$k] & $Dateien[$l], 9) ;Verschiebt die Datei
    FileWriteLine($Log, $Zusammengesetzt & @CRLF) ;Log schreiben
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/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
    $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 schreiben

    [/autoit] [autoit][/autoit] [autoit]

    If $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
    _Load() ;Load ausführen

    [/autoit] [autoit][/autoit] [autoit]

    Else

    [/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]
    ReDim $Ordner[5000]

    [/autoit] [autoit][/autoit] [autoit]

    _FileReadToArray($File, $Ordner) ;liest die Dateipfade ins Array

    [/autoit] [autoit][/autoit] [autoit]

    For $l = 1 To $Ordner[0] Step 1
    GUICtrlCreateListViewItem($Ordner[$l], $Listview) ;in Listview eintragen
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ReDim $Ordner[1]
    ReDim $Ordner[5000]
    ReDim $Ordnerneu[1]
    ReDim $Ordnerneu[5000]
    ReDim $Endungen[1]
    ReDim $Endungen[5000]
    ReDim $Loeschen[1]
    ReDim $Loeschen[5000]

    [/autoit] [autoit][/autoit] [autoit]

    $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
    $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 eintragen

    [/autoit] [autoit][/autoit] [autoit]

    Next

    [/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
    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 setzen

    [/autoit] [autoit][/autoit] [autoit]

    FileDelete($File) ;Liste löschen

    [/autoit] [autoit][/autoit] [autoit]

    For $l = 1 To $Ordner[0] Step 1
    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
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_Delete

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Ende()
    Exit
    EndFunc ;==>_Ende

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Falls noch jemand Verbesserungsvorschläge hat immer gerne. ;)
    Programmname lass ich mir auch gerne einen neuen (passenderen) vorschlagen. :D

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™