Ping

Estoy tratando hacer una aplicación de access donde pueda mediante un botón poder pinguear a direcciones de ip que están en una tabla, por ahora solo descubrí como usar el comando shell
y coloque la siguiente linea en el evento al hacer click del botón:
Dim RetVal
RetVal = Shell("C:\WINDOWS\ping.exe 200.10.15.14", 1)
Pero resulta que la ventana de ping se cierra apenas termina los cuatro pings, y no puedo elegir la ip de la tabla, tampoco levantar los resultados, si alguien sabe como hacerlo le agradecería eternamente.

3 respuestas

Respuesta
1
Sobre lo de la shell, puedes hacerlo con una cadena.
ip= "la que tu quieras"
Cadena = "c:\windows\ping.exe " & ip,1)
Respecto a lo de hacer un Ping desde Access y almacenar los resultados...
Haz esto:
Ip= "127.0.0.1" '<< la IP que tu quieras
Cadena = "c:\windows\ping.exe " & ip & "> salida.txt",1)
Y luego tendrás el resultado del PING en el archivo salida.txt .
¿Te vale?
Muchísimas gracias por tu ayuda, funciono bien lo de la cadena pero no funciona lo de la salida.txt por que interfiere con los parámetros del comando ping.
Logre hacer el botón que pinguea a las ip de la tabla, poniendo la siguiente linea:
ip = IPRIVADASDES
Dim RetVal
RetVal = Shell("C:\WINDOWS\ping.exe -n 10 " & ip & "", 1)
El problema es que luego de hacer ping windows cierra la ventana de DOS y no me deja ni siquiera ver los resultados, la pregunta seria como hago para que la ventana no se cierre inmediatamente después de hacer los pings, o como levanto los datos para mostrarlos en algún formulario después de hacer el ping.
Gracias
Solución rápida:
Llama a un archivo Pingea.BAT que contenta lo siguiente:
>>>>>>>>>>>>>>>
@echo off
Cls
Ping %1
Pause > NUL
>>>>>>>>>>>>>>>
Y llámalo con "Pingea IP_que_quieras".
¿Ok?
Había pensado en esa solución, me parece muy buena pero no me funciona en el access o sea si yo pongo lo siguiente:
ip = IPRIVADASDES
Dim RetVal
RetVal = Shell("C:\WINDOWS\pinguea.bat -n 10 " & ip & "", 1)
No pinguea la dirección del formulario sino me sale el help del comando ping.
Si encuentras la forma que funcione en access seria la solución final.
Muchísimas Gracias
Eso es normal.
Porque solamente le estás pasando al ping el primer parámetro.
Para el caso que acabas de poner tienes que decir:
ping %1 %2 %3 %4 %5 %6 %7 %8 %9 %10
dentro del .BAT.
Respuesta
1
En la siguiente dirección encontrarás un ejemplo que usa las API para hacer un PING.
http://www.atawalabachala.es.org/vb.htm
Respuesta
1
Teniendo en cuenta que shell no permite recoger el resultado producido puedes hacer lo siguiente:
RetVal = Shell("c:\windows\ping.exe " & ip & ">C:\fichero", 1)
Ip es la variable donde almacenas la ip que necesitas pingar y el resultado debería ir a C:\fichero. Luego lees el fichero y podrás saber si se ha echo el ping o no

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas