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
#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----------------------------------------------------------------------------
#include <Array.au3>
#include <GUIConstants.au3>
#include <GuiListView.au3>
#include <file.au3>
#include <Date.au3>
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
hotkeyset("^!c","Terminate")
Func Terminate() ;function to terminate script
Exit 0
EndFunc
Func TogglePause() ;function to pause script
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc
$xmax = @DesktopWidth
$ymax = @DesktopHeight
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)
$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] = '-'
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)
$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
**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