Hiho,
Genau 8 Tage, nachdem ich mit Autoit angefangen habe ich hier ein kleines Programm.
Ursprünglich war es dazu da, umzu gucken ob ich Internet habe, geht auch soweit. Doch jetzt, wo man die Pingadresse ändern kann, kann man jetzt auch gucken, ob ein Server online ist. Da ich ja noch in der lernphase bin, bitte ich euch nicht den Code zu verändern und so fertig hier schreiben bitte gibt mir nur Tipps ![]()
Das ist jetzt Verison 0.6 mit nur einem Tray Menü.
Das geht noch nicht(kommt aber):
-Speicherort ändern (der ping.csv)
-Autostart (hab ich extra deaktviert für euch)
-Falls ihr noch keine down hattet gibst die ping.csv auch nicht^^ (wird geändert)
-Multiping
-richtiges Gui
Spoiler anzeigen
#include <file.au3>
#Include <Constants.au3>
#include <Array.au3>
Opt("TrayOnEventMode",1)
Opt("TrayMenuMode",1) ;Pause Exit ausblenden
;FileCreateShortcut( @ScriptDir & "\Internetchecker.exe", "C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Autostart\Internetcheck.exe") ;autostart
TraySetClick(16) ;Rechte maustaste
$displayitem = TrayCreateItem("Log zeigen")
TrayItemSetOnEvent(-1,"pinger")
TrayCreateItem("")
$settingsitem = TrayCreateMenu("Einstellungen")
TrayCreateItem("")
$autostart = TrayCreateItem("Autostart", $settingsitem)
TrayItemSetOnEvent(-1,"autostart")
$wodatei = TrayCreateItem("Speicherort", $settingsitem)
TrayItemSetOnEvent(-1,"wodatei")
$timeout = TrayCreateItem("Timeout festlegen", $settingsitem)
TrayItemSetOnEvent(-1,"timeout")
$pingad = TrayCreateItem("Pingaddresse festlegen", $settingsitem)
TrayItemSetOnEvent(-1,"pingad")
$intervall = TrayCreateItem("Intervall festlegen", $settingsitem)
TrayItemSetOnEvent(-1,"intervall")
$infoitem = TrayCreateItem("Information")
TrayItemSetOnEvent(-1,"ShowInfo")
$exititem = TrayCreateItem("Schließen")
TrayItemSetOnEvent(-1,"ExitScript")
TraySetState()
;Variabeln suchen
$intervalliniread = IniRead(@ScriptDir & "\options.ini", "options", "intervall", "60000")
$pinginiread = IniRead(@ScriptDir & "\options.ini", "options", "pingad", "www.google.de")
$timeoutread = IniRead(@ScriptDir & "\options.ini", "options", "timeout", "250")
While 1 ; Idle Function Loop
$var = Ping($pinginiread, $timeoutread)
If $var Then
sleep(10)
Else
_FileWriteLog(@ScriptDir & "\ping.csv","; Offline ; Error: " & @error)
EndIf
Sleep($intervalliniread)
Wend
Exit
; Functions
Func timeout() ;timeout zeit einstellen
$timeout = InputBox("Timeout", "Gib die Timeoutzeit ein in Millisekunden ein. Sie gibt an, wann der Verbindungsversuch abgebrochen wird. Standart: 250ms")
IniWrite(@ScriptDir & "\options.ini", "options", "timeout", $timeout)
Endfunc
Func pingad() ;pingadresse einstellen
$pingini = InputBox("Pingadresse", "Gib die Adresse an, die angepingt werden soll. Standart: http://www.google.de")
IniWrite(@ScriptDir & "\options.ini", "options", "pingad", $pingini)
Endfunc
Func wodatei() ;ping.csv speicherort
Endfunc
Func autostart() ;Autostart Ja o. nein
Endfunc
Func ShowInfo() ;info
Dim $avArray[9]
$avArray[0] = "Internetchecker"
$avArray[1] = "Ver. [0.6]"
$avArray[2] = "Errors:"
$avArray[3] = "1 = Host is offline"
$avArray[4] = "2 = Host is unreachable"
$avArray[5] = "3 = Bad destination"
$avArray[6] = "4 = Other errors"
$avArray[7] = "ICQ: 191221651"
$avArray[8] = "© 2008/2009 bei Hendrik O."
$array = StringSplit("a,b,c,d,e,f,g,h,i",",")
$iRetCode = _ArrayToClip( $avArray, 0 )
MsgBox( 0, "Information", ClipGet() ) ; Der Wert des ClipBoards wird abgerufen!
EndFunc
Func intervall()
$intervallini = InputBox("Intervall", "Gib bitte die Intervallzeit in Sekunden ein. Standart: 60sek")
$intervallini2 = $Intervallini * 1000
IniWrite(@ScriptDir & "\options.ini", "options", "intervall", $intervallini2)
EndFunc
Func pinger() ;shell ping.csv
ShellExecute (@ScriptDir & "\ping.csv" )
EndFunc
Func ExitScript() ;exit
Exit
EndFunc
Wenn ihr das kurz testen könntet wäre ich euch dankbar.