Hi,
ich habe eine kleines Script geschrieben welches eine Excel-Spalte die mit IP Adressen gefüllt ist durchgeht und anpingt.
Das Ergebnis in ms wird dann in der rechten Spalte neben der IP eingetragen.
Ich habe das mit Sendkeys gemacht, geht aber bestimmt auch noch besser mit der EXCEL UDF.
Aber es geht mir sowieso um etwas anderes.
Manchmal habe ich auch eine Liste mit Hostnamen die ich anpingen will. Das funktioniert aber nicht.
Dann habe ich versucht Den Eintrag in der EXCEL Tabelle mit StringIsXDigit zu analysieren. Wenn also kein "." im String ist gehe ich davon aus, das es ein HOSTNAME ist. Ich habe versucht dann den Namen mit TCPNameToIP in eine IP umzuwandeln. Aber irgendwie klappt das nicht.
Komischerweise ist das dem DOS Befehl PING völlig egal, da klappt es sowohl mit dem Namen, als auch mit der IP. Vielleicht liegt es daran, das beim DOS Ping.
Andererseits sollte das AUTOIT PING doch auch mit HOSTNAMEN klarkommen lt Hilfe:
Function Reference
Ping
--------------------------------------------------------------------------------
Pings a host and returns the roundtrip-time.
Ping ( "address/hostname" [, timeout] )
Parameters
address/hostname Can be i.e. "www.autoitscript.com" or "87.106.244.38".
timeout [optional] Is the time to wait for an answer in milliseconds (default is 4000).
Alles anzeigen
Hier meine Script
[autoit]
Opt("WinTitleMatchMode", 4)
WinActivate("Microsoft Excel","")
;~ ControlClick("Unbenannt - Editor","","Edit1")
PING_EXCEL ()
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Func exit_func()
exit
EndFunc
func PING_EXCEL ()
[/autoit][autoit][/autoit][autoit]MsgBox(0,"Ping IP Adressen in einer EXCEL-SPALTE","Die Pingzeit wird in der nächsten rechten Spalte eingetragen" & @CR & "Bitte erste IP Adresse anklicken" & @CR & "dann OK klicken" & @CR & "Abbruch mit <ESC>")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Send("^c")
[/autoit][autoit][/autoit][autoit]Do
Send("{RIGHT}")
$ping=Ping(ClipGet())
;~ MsgBox(0,ClipGet(),$ping)
if $ping > 0 then
Send($ping & " ms")
Else
Send(" dead")
EndIf
Send("{LEFT}")
Send("{DOWN}")
Send("^c")
IF ClipGet() = 0 Then ExitLoop
Until ClipGet() = ""
EndFunc