Option Explicit Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Function HazPing(Ip As String) As String 'Aunque en sistemas Windows XP existe el CMD como ejecutor 'de comandos consola, se sigue conservando por compatibilidad 'el command.com Es el que utilizo en este ejemplo '*******Hacemos PING: Shell "command.com /c ping -w 200 " & Ip & " > C:\ping.txt", vbHide '******************************************************************** '(Tambien podriamos haber usado directamente PING.EXE) 'AHora damos un tiempo de espera para que se 'rellene el fichero. Podríamos tambien 'saber mediante API cuando ha terminado el proceso del ping 'a traves del command.com, pero por no liar el codigo 'con mas apis, lo dejo asi. 'Paro este codigo 6 segundos: '¿Tiempo suficiente para que se escriba en el fichero? '****************paramos 6 segundos DoEvents: Sleep 6000 '******************* 'ahora abro el fichero y le leo del un golpe '***************************************************************** HazPing = "Resultados del PING: " & LeerArchivoPING("C:\ping.txt") '***************************************************************** End Function Private Function LeerArchivoPING(ByVal strRuta As String) As String Dim CanalLibre As Integer CanalLibre = FreeFile Open strRuta For Input As #CanalLibre LeerArchivoPING = Input(LOF(CanalLibre), #CanalLibre) Close #CanalLibre End Function Sub ProbandoCodigo() MsgBox HazPing("192.168.200.1"), vbInformation, "Resultados" End Sub