pingTooL

  • Tach, hier mein pingTooL

    es pingt in bestimmten zeitabständen beliebige(+ beliebig viele) rechner an. die pingtime, die intervalle und die namen oder ip-adressen der rechner, die angepingt werden sollen, schreibt man in eine ini (config)
    die ausgabe erfolgt in einem kleinen transparenten fenster und zeigt immer an, welcher rechner online ist und welcher nicht.
    außerdem schreibt er die daten, welcher wann on -und off geht in eine weitere ini(log)

    -in zeile 52 kann man mit werten zwischen "0 - 255" die transparenzstärke einstellen

    Spoiler anzeigen
    [autoit]

    #cs----------------------------------------------------------------------------
    AutoIt Version: 3.2.8.1
    Author: DarkSideOfSanta
    function: ping and show result in info-window + write in .ini-file
    Version 1.00
    #ce----------------------------------------------------------------------------

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

    #include <Array.au3>
    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    #include <file.au3>
    #include <Date.au3>

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

    Global $Paused
    HotKeySet("{PAUSE}", "TogglePause")
    hotkeyset("^!c","Terminate")

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

    Func Terminate() ;function to terminate script
    Exit 0
    EndFunc

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

    Func TogglePause() ;function to pause script
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
    EndFunc

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

    $xmax = @DesktopWidth
    $ymax = @DesktopHeight

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

    dim $ip[200][2]

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

    $title = "ping"

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

    $pingtime = IniRead('ping_config.ini','config','pingtime',2000) ;auslesen der pingzeit in ms
    $intervall = IniRead('ping_config.ini','config','intervall',10000) ;auslesen der intervallzeiten(zwischen den versch. ip-adressen)

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

    $i = 0
    Do
    $i = $i+1
    $ip[$i][1] = IniRead('ping_config.ini','adressen','IP'& $i,'-') ;auslesen der ip-adressen
    $ip[$i][0] = 2
    Until $ip[$i][1] = '-'

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

    GUICreate($title,140,200,$xmax-160,$ymax-260, $WS_POPUPWINDOW, $WS_EX_TRANSPARENT) ;erzeugen eines info-fensters

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

    WinSetOnTop( "ping", "", 1)
    WinSetTrans( "ping", "", 100)

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

    $listview1 = GUICtrlCreateListView('IP | Status',-1,-1,140,200)

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

    GUISetState ()

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

    $i = $i-1 ;setzen von $i auf letzte IP

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

    while 1
    for $n = 1 to $i

    $ping = ping($ip[$n][1],$pingtime)
    if $ping And $ip[$n][0] <> 1 then
    _GUICtrlListViewDeleteItem($listview1,$n-1) ;zur richtigen anordnung der einträge in das info-fenster
    _GUICtrlListViewInsertItem($listview1,$n-1,$ip[$n][1] & " | online") ;eintrag in info fenster
    IniWrite(@ScriptDir&'\ping_log.ini',$ip[$n][1],@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC,'online')
    $ip[$n][0] = 1
    Elseif Not $ping And $ip[$n][0] <> 0 Then
    _GUICtrlListViewDeleteItem($listview1,$n-1) ;zur richtigen anordnung der einträge in das info-fenster
    _GUICtrlListViewInsertItem($listview1,$n-1,$ip[$n][1] & " | -")
    IniWrite(@ScriptDir&'\ping_log.ini',$ip[$n][1],@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC,'offline')
    $ip[$n][0] = 0
    endif
    sleep($intervall)

    Next
    WEnd

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

    **edit 30.09.07: zeile 47 "$ip[$i][0] = 2" und zeile 70 "$ip[$n][0] <> 0"
    dadurch werden offline-IPs direkt in das info-fenster + die log.ini geschrieben, anstatt erst, wenn sie vorher online waren

  • edit:

    * routinezeit (zeit zwischen den kompletten ping-durchläufen) hinzugefügt, wird im transparenten fenster mit angezeigt

    * in der log-datei wird nur noch dann die zeit eingetragen, wenn sich der zustand verändert, d.h. wenn der rechner on- oder offline geht. dies gilt auch, wenn das programm neu gestartet wird (letzter eintrag wird also beim neustart des programms berücksichtigt)

    * traymenü eingefügt, u.a. zum aus- und einblenden des transparenten fensters, zum aus- und einblenden der zeit und zum direkten starten der ping-abfragen

    *bestehender bug: komplette listview (anzeige von gerät und status) färbt sich nach aus- und einblenden des fensters und auch teilweise nach ping-durchläufen komplett rot, oder komplett schwarz, obwohl eigentlich nur die "offline" geräte so gefärbt sein sollten.
    falls hierzu jemand eine idee hat, bitte posten. den code häng ich nochmal dran.

    Spoiler anzeigen
    [autoit]

    #cs----------------------------------------------------------------------------
    ;AutoIt Version: 3.2.8.1
    ;Author: DarkSideOfSanta
    ;function: ping and show result in info-window + write in .ini-file
    ;Version 1.1
    #ce----------------------------------------------------------------------------

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

    #include <Array.au3>
    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    #include <file.au3>
    #include <Date.au3>
    #include <Constants.au3>

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

    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1)

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

    $xmax = @DesktopWidth
    $ymax = @DesktopHeight
    $routine = 0
    $zeit = 0
    $hour = 0
    $min = 0
    $sec = 0
    $i = 0
    $tool = 0
    $pause = 1

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

    dim $ip[200][2]
    dim $status[200][2]

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

    $title = "pingTooL"

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

    Global $Paused
    HotKeySet("{PAUSE}", "TogglePause")
    hotkeyset("^!c","Terminate")
    HotKeySet("^!v",'stealth')
    TrayCreateItem("Ping jetzt ausführen")
    TrayItemSetOnEvent(-1,"pingnow")
    TrayCreateItem("About")
    TrayItemSetOnEvent(-1,"about")
    TrayCreateItem("Hide Time")
    TrayItemSetOnEvent(-1,"hidetime")
    TrayCreateItem("Hide/Show")
    TrayItemSetOnEvent(-1,"stealth")
    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"Terminate")

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

    Func pingnow()
    $routine1 = 0
    EndFunc

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

    ;function shows msgbox with author-info
    Func about()
    MsgBox(0,'PingTooL',Chr(169)&'DarkSideOfSanta'& @CRLF & @CRLF &'darksideofsanta@hotmail.com')
    EndFunc

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

    ;function to terminate script
    Func Terminate()
    Exit 0
    EndFunc

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

    ;function to pause script
    Func TogglePause()
    $Paused = Not $paused
    While 1
    sleep(100)
    ToolTip('Script is "Paused"',$xmax-90,$ymax-70,'','',2)
    WEnd
    ToolTip("")
    EndFunc

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

    ;function to hide/show window
    Func stealth()
    $state = WinGetState('pingTooL','')
    If BitAnd($state, 2) Then
    WinSetState('pingTooL','',@SW_HIDE)
    ToolTip('',-1,-1,'','',2)
    $tool = 1
    Else
    WinSetState('pingTooL','',@SW_SHOW)
    $tool = 0
    EndIf
    EndFunc

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

    ;function to hide/show the time left to the next routine
    Func hidetime()
    If $tool = 1 Then
    $tool = 0
    GUICtrlSetState($Label1,$GUI_SHOW)
    Else
    $tool = 1
    GUICtrlSetState($Label1,$GUI_HIDE)
    EndIf
    EndFunc

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

    ;auslesen der pingzeit in ms aus config
    $pingtime = IniRead('ping_config.ini','config','pingtime',2000)

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

    ;auslesen der intervallzeiten(zwischen den versch. ip-adressen) aus config
    $intervall = IniRead('ping_config.ini','config','intervall',10000)

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

    ;auslesen der zeit zwischen der routine aus config
    $routine = IniRead('ping_config.ini','config','routine',600000)

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

    ;auslesen der ip-adressen/namen aus config
    $ip = IniReadSection("ping_config.ini", "rechner")

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

    ;auslesen des letzten status aus log
    For $n = 1 To $ip[0][0]
    $status = IniReadSection("ping_log.ini",$ip[$n][0])
    If Not @error Then
    $help = $status[0][0]
    $ip[$n][1] = $status[$help][1]
    EndIf
    Next

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

    ;erzeugen eines info-fensters
    GUICreate($title,140,200,$xmax-160,$ymax-260, $WS_POPUPWINDOW, $WS_EX_TRANSPARENT)
    WinSetOnTop('pingTooL','',1)

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

    ;einstellen der transparenzstärke
    ;0 = komplett sichtbar
    ;255 = tranzparent
    WinSetTrans('pingTooL','',100)

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

    ;erstellen der liste im fenster für name/ip und status
    $listview1 = GUICtrlCreateListView('IP |Status',-1,-1,140,180)

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

    ;erstellen eines labels für die anzeige der zeit
    $Label1 = GUICtrlCreateLabel('',5,182,135,20,$SS_RIGHT)

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

    GUISetState ()

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

    while 1
    for $n = 1 to $ip[0][0]
    $ping = ping($ip[$n][0],$pingtime)
    if $ping then

    ;zur richtigen anordnung der einträge in das info-fenster wird element an der stelle gelöscht
    _GUICtrlListViewDeleteItem($listview1,$n-1)
    GUICtrlSetColor(-1,0x000000)

    ;eintrag in die liste im info-fenster
    _GUICtrlListViewInsertItem($listview1,$n-1,$ip[$n][0] & " | online")

    ;eintrag in der config.ini über letzten status
    IniWrite(@ScriptDir&'\ping_config.ini','rechner',$ip[$n][0],' - online - '&@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC)

    ;eintrag in die log.ini, wenn status geändert
    If $ip[$n][1] = 'offline' Then
    IniWrite(@ScriptDir&'\ping_log.ini',$ip[$n][0],@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC,'online')
    $ip[$n][1] = 'online'
    EndIf
    Elseif Not $ping Then

    ;zur richtigen anordnung der einträge in das info-fenster wird element an der stelle gelöscht
    _GUICtrlListViewDeleteItem($listview1,$n-1)
    GUICtrlSetColor($Listview1,0xff0000)

    ;eintrag in die liste im info-fenster
    _GUICtrlListViewInsertItem($listview1,$n-1,$ip[$n][0] & " | -")

    ;eintrag in der config.ini über letzten status
    IniWrite(@ScriptDir&'\ping_config.ini','rechner',$ip[$n][0],' - offline - '&@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC)

    ;eintrag in die log.ini, wenn status geändert
    If $ip[$n][1] = 'online' Then
    IniWrite(@ScriptDir&'\ping_log.ini',$ip[$n][0],@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC,'offline')
    $ip[$n][1] = 'offline'
    EndIf
    endif
    sleep($intervall)
    Next

    $routine1 = $routine

    ;aufteilen der millisekunden in h,min,sec + ausgabe im label
    For $i = 1 To $routine1/1000
    $zeit = $routine1/1000-$i
    $hour = $zeit/3600
    $zeit = Mod($zeit,3600)
    $min = $zeit/60
    $zeit = Mod($zeit,60)
    $sec = $zeit
    If $routine < 0 Or $zeit < 0 Or $hour < 0 Or $min < 0 Or $sec < 0 Then
    GUICtrlSetData($Label1,'')
    ExitLoop
    EndIf
    If $tool = 0 Then
    GUICtrlSetFont (-1,8.5, 600)
    GUICtrlSetData($Label1,Int($hour)&':'&Int($min)&':'&$sec&' bis zur Routine ')
    GUICtrlSetColor(-1,0x000000)
    EndIf
    sleep(1000)
    GUICtrlSetData($Label1,'')
    Next
    WEnd

    [/autoit]
  • ||

    Hab in die INI mal ne im netz befindliche IP eingetragen, aber der Status auf "-" ? Sollte da nicht "online" kommen?

    ||

  • ja, na klar, dazu ist das tool da^^
    in der ini steht ja auch schon "www.heise.de" drin und es wundert mich, dass eine ip nicht aufzufinden ist, die ins netzt weist..
    schreib doch mal die ip hier rein, oder vielleicht hast du ja auch die "form" in der ini nicht genau beachtet:

    [rechner]
    xxx.xxx.xxx.xxx= blub

  • ||

    Das ist ganz sicher nicht das Problem, weil bei mir lokal was nicht stimmte.

    ||

    Einmal editiert, zuletzt von zio82draw (9. Oktober 2007 um 18:36)

  • ||

    Japp. Hab die IP-meines Rechners eingegeben und die ist im Gegensatz zu anderen Geräte im Netz nicht erreichbar, weil die Software-Firewall zu macht.

    ||

  • ||

    Nein, du verstehst mich falsch. Der Ping kann abgesetzt werden. Nur ich bin nicht erreichbar. Mein Router und heise.de sind erreichbar.

    Außerdem bemerkt keine Firewall, wenn ein AutoIT-Script einen Ping absetzt. AutoIT nutzt dafür Windowsressourcen.

    ||

  • ahso. naja, du kannst dich auch vom netz aus nicht anpingen, wenn du einen router dazwischen hast. allerdings von dir aus müsste das gehen, solange du eine feste ip hast, denk ich.
    auf jeden fall kann so ohne weiteres über das netz nicht auf deinen pc einfach über die ip zugegriffen werden. meinst du das ?

  • ||

    nee, ich meine das ich jedes Gerät anpingen kann, nur mich nicht, weil ich ne firewall drauf hab. Ein Ping gibt ne Nachricht raus und erwartet ne Antwort und die kommt nie an, weil die Firewall die abfängt.

    ||

  • ^^ also dann funktioniert eigentlich alles und das "ping an dich selbst" hat nix mit dem tool zu tun?

  • also meine firewall fängt ping ja nicht ab :)
    [/OT]

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]
  • irgendwie läuft das teil leider nicht mehr, auch wenn man die neuen Funktionsnamen der GuiListView einbindet =/

    hm ?? also bei mir geht es.
    ich hab das jetzt auch mal mit den richtigen farben (schwarz/rot) hinbekommen.
    hier noch mal die au3:

    Spoiler anzeigen
    [autoit]

    #cs----------------------------------------------------------------------------
    ;AutoIt Version: 3.2.8.1
    ;Author: DarkSideOfSanta
    ;function: ping and show result in info-window + write in .ini-file
    ;Version 1.1
    #ce----------------------------------------------------------------------------

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

    #include
    #include
    #include
    #include
    #include
    #include

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

    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1)

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

    $xmax = @DesktopWidth
    $ymax = @DesktopHeight
    $routine = 0
    $zeit = 0
    $hour = 0
    $min = 0
    $sec = 0
    $i = 0
    $tool = 0
    $pause = 1

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

    dim $ip[200][2]
    dim $status[200][2]

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

    $title = "pingTooL"

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

    Global $Paused
    HotKeySet("{PAUSE}", "TogglePause")
    hotkeyset("^!c","Terminate")
    HotKeySet("^!v",'stealth')
    TrayCreateItem("Ping jetzt ausführen")
    TrayItemSetOnEvent(-1,"pingnow")
    TrayCreateItem("About")
    TrayItemSetOnEvent(-1,"about")
    TrayCreateItem("Hide Time")
    TrayItemSetOnEvent(-1,"hidetime")
    TrayCreateItem("Hide/Show")
    TrayItemSetOnEvent(-1,"stealth")
    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"Terminate")
    Func pingnow()
    $routine1 = 0
    EndFunc

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

    ;function shows msgbox with author-info
    Func about()
    MsgBox(0,'PingTooL',Chr(169)&'DarkSideOfSanta'& @CRLF & @CRLF &'darksideofsanta@hotmail.com')
    EndFunc

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

    ;function to terminate script
    Func Terminate()
    Exit 0
    EndFunc

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

    ;function to pause script
    Func TogglePause()
    $Paused = Not $paused
    While 1
    sleep(100)
    ToolTip('Script is "Paused"',$xmax-90,$ymax-70,'','',2)
    WEnd
    ToolTip("")
    EndFunc

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

    ;function to hide/show window
    Func stealth()
    $state = WinGetState('pingTooL','')
    If BitAnd($state, 2) Then
    WinSetState('pingTooL','',@SW_HIDE)
    ToolTip('',-1,-1,'','',2)
    $tool = 1
    Else
    WinSetState('pingTooL','',@SW_SHOW)
    $tool = 0
    EndIf
    EndFunc

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

    ;function to hide/show the time left to the next routine
    Func hidetime()
    If $tool = 1 Then
    $tool = 0
    GUICtrlSetState($Label1,$GUI_SHOW)
    Else
    $tool = 1
    GUICtrlSetState($Label1,$GUI_HIDE)
    EndIf
    EndFunc

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

    ;auslesen der pingzeit in ms aus config
    $pingtime = IniRead('ping_config.ini','config','pingtime',2000)

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

    ;auslesen der intervallzeiten(zwischen den versch. ip-adressen) aus config
    $intervall = IniRead('ping_config.ini','config','intervall',10000)

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

    ;auslesen der zeit zwischen der routine aus config
    $routine = IniRead('ping_config.ini','config','routine',600000)

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

    ;auslesen der ip-adressen/namen aus config
    $ip = IniReadSection("ping_config.ini", "rechner")

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

    ;auslesen des letzten status aus log
    For $n = 1 To $ip[0][0]
    $status = IniReadSection("ping_log.ini",$ip[$n][0])
    If Not @error Then
    $help = $status[0][0]
    $ip[$n][1] = $status[$help][1]
    EndIf
    Next

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

    ;erzeugen eines info-fensters
    GUICreate($title,140,200,$xmax-160,$ymax-260, $WS_POPUPWINDOW, $WS_EX_TRANSPARENT)
    WinSetOnTop('pingTooL','',1)

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

    ;einstellen der transparenzstärke
    ;0 = komplett sichtbar
    ;255 = tranzparent
    WinSetTrans('pingTooL','',100)

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

    ;erstellen der liste im fenster für name/ip und status
    $listview1 = GUICtrlCreateListView('IP |Status',-1,-1,140,180)

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

    ;erstellen eines labels für die anzeige der zeit
    $Label1 = GUICtrlCreateLabel('',5,182,135,20,$SS_RIGHT)

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

    GUISetState ()

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

    while 1
    for $n = 1 to $ip[0][0]
    $ping = ping($ip[$n][0],$pingtime)
    if $ping then

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

    ;zur richtigen anordnung der einträge in das info-fenster wird element an der stelle gelöscht
    _GUICtrlListViewDeleteItem($listview1,$n-1)
    GUICtrlSetColor($Listview1,0x000000)

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

    ;eintrag in die liste im info-fenster
    _GUICtrlListViewInsertItem($listview1,$n-1,$ip[$n][0] & " | online")
    ;GUICtrlSetColor($Listview1,0x000000)

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

    ;eintrag in der config.ini über letzten status
    IniWrite(@ScriptDir&'\ping_config.ini','rechner',$ip[$n][0],' - online - '&@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC)

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

    ;eintrag in die log.ini, wenn status geändert
    If $ip[$n][1] = 'offline' Then
    IniWrite(@ScriptDir&'\ping_log.ini',$ip[$n][0],@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC,'online')
    $ip[$n][1] = 'online'
    EndIf
    Elseif Not $ping Then

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

    ;zur richtigen anordnung der einträge in das info-fenster wird element an der stelle gelöscht
    _GUICtrlListViewDeleteItem($listview1,$n-1)
    GUICtrlSetColor($Listview1,0xff0000)

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

    ;eintrag in die liste im info-fenster
    _GUICtrlListViewInsertItem($listview1,$n-1,$ip[$n][0] & " | -")

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

    ;eintrag in der config.ini über letzten status
    IniWrite(@ScriptDir&'\ping_config.ini','rechner',$ip[$n][0],' - offline - '&@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC)

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

    ;eintrag in die log.ini, wenn status geändert
    If $ip[$n][1] = 'online' Then
    IniWrite(@ScriptDir&'\ping_log.ini',$ip[$n][0],@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC,'offline')
    $ip[$n][1] = 'offline'
    EndIf
    endif
    sleep($intervall)
    Next

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

    $routine1 = $routine

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

    ;aufteilen der millisekunden in h,min,sec + ausgabe im label
    For $i = 1 To $routine1/1000
    $zeit = $routine1/1000-$i
    $hour = $zeit/3600
    $zeit = Mod($zeit,3600)
    $min = $zeit/60
    $zeit = Mod($zeit,60)
    $sec = $zeit
    If $routine < 0 Or $zeit < 0 Or $hour < 0 Or $min < 0 Or $sec < 0 Then
    GUICtrlSetData($Label1,'')
    ExitLoop
    EndIf
    If $tool = 0 Then
    GUICtrlSetFont (-1,8.5, 600)
    GUICtrlSetData($Label1,Int($hour)&':'&Int($min)&':'&$sec&' bis zur Routine ')
    GUICtrlSetColor(-1,0x000000)
    EndIf
    sleep(1000)
    GUICtrlSetData($Label1,'')
    Next
    WEnd

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

    + natürlich noch die config Datei:

    ping_config.ini

  • hm, ich bekomme beim compilieren immer diese Fehler? Wahrscheinlich Anfängerfehler...

    >"C:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper_Gui.exe" /in "D:\pingTooL.au3"
    +>14:52:30 Starting AutoIt3Wrapper GUI v.1.10.1.7
    -> No changes made..
    +>14:52:34 Starting AutoIt3Wrapper v.1.10.1.7 Environment(Language:0407 Keyboard:00010407 OS:WIN_XP/Service Pack 2 CPU:X86)
    >Running AU3Check (1.54.10.0) from:C:\Programme\AutoIt3
    D:\pingTooL.au3(91,26) : WARNING: $Label1: possibly used before declaration.
    GUICtrlSetState($Label1,
    ~~~~~~~~~~~~~~~~~~~~~~~^
    D:\pingTooL.au3(142,46) : ERROR: _GUICtrlListViewDeleteItem(): undefined function.
    _GUICtrlListViewDeleteItem($listview1,$n-1)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\pingTooL.au3(146,71) : ERROR: _GUICtrlListViewInsertItem(): undefined function.
    _GUICtrlListViewInsertItem($listview1,$n-1,$ip[$n][0] & " | online")
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\pingTooL.au3 - 2 error(s), 1 warning(s)
    !>14:52:35 AU3Check ended.rc:2
    >Running:(3.2.10.0):C:\Programme\AutoIt3\aut2exe\aut2exe.exe /in "D:\pingTooL.au3" /out "D:\pingTooL.exe" /comp 2 /pack /Bin C:\DOKUME~1\hgarbe\LOKALE~1\Temp\AutoItSC.bin
    +>14:52:41 Aut2exe.exe ended.rc:0
    ->Warning: This is an Unicode compiled script and will not run on Win9x/ME.
    >Exit code: 0 Time: 12.276

    Gruß
    heiga

  • kein Anfängerfehler sondern in der neuen Version von Autoit wurden die Listviewbefehle geändert, bzw denen andere Funktionsnamen zugewiesen, einfach mal in der Hilfe nachschauen und verbessern