¿Cómo implementar el comando PING en VB?
Utilice VB Shell para ejecutar el comando PING, redirija la salida de PING al archivo c:\r.txt y luego lea el archivo c:\r.txt para mostrar los resultados de la ejecución.
Dado que el comando Shell en VB se ejecuta de forma asincrónica, es decir, después de llamar al Shell, el programa continuará ejecutando la siguiente declaración sin esperar a que el Shell complete la ejecución. Por lo tanto, el programa utiliza la API del sistema para determinar si el shell ha terminado de ejecutarse.
1) Formularios y controles
2) Código
¿Opción?Explícito
¿Privado?Declarar?Función?GetExitCodeProcess?Lib? kernel32"?(? _
ByVal?hProcess?As?Long,? _
lpExitCode?As?Long)?As?Long
¿Privado? Declarar ?Función?CloseHandle?Lib?"kernel32"?(? _
ByVal?hObject?As?Long)?As?Long
¿Privado?Declarar?Función?OpenProcess?Lib ? ¿"kernel32"?(? _
¿ByVal?dwDesiredAccess?As?Long,?_
ByVal?bInheritHandle?As?Long,?_
ByVal ? dwProcessId?As?Long)?As?Long
Const?PROCESS_QUERY_INFORMATION?=?&H400
Const?STILL_ALIVE?=?&H103
Privado?Sub Command1_Click? ()
If?Trim(Text1.Text)?=?"" ?Then
MsgBox?"Ingrese el nombre de dominio o la dirección IP",?vbInformation?+?vbOKOnly
Text1.SetFocus
¿Salir?Sub
Fin?Si
'Deshabilitar el botón de comando durante la ejecución del comando'
Command1.Enabled?=?False
'Llamar a Shell para realizar Ping y redirigir los resultados de la ejecución a C:\r.txt
Dim?pid?As?Long
p>pid?=?Shell("cmd.exe?/C?Ping?"? &?Text1.Text?&?" ? >?c:\r.txt",?vbHide)
'?Pregunta
Text2.Text?=?"Realizando Ping?"?&?Text1.Text?&?"?..."
'Esperando ejecución de Shell termina
Dim?hProc?As?Long
hProc?=?OpenProcess(PROCESS_QUERY_INFORMATION,?0,?pid)
Dim?ExitCode?As ?
Ejecutar
Llamar a GetExitCodeProcess(hProc,?ExitCode)
DoEvents
¿Bucle mientras?ExitCode?
' Abrir archivo C:\r.txt
¿Abrir?"c:\r.txt"? "For?Input?As?#1
Dim?strLine?As? String
Do?Until?EOF(1)
Línea?Input?#1,? "strLine
'Mostrar resultados de ejecución
Texto2 .Text?=?Text2.Text?&?strLine?&?vbNewLine
Bucle
'Cerrar el archivo
¿Cerrar?#1
'Eliminar C:\r.txt
¿En?Error?¿Reanudar?Siguiente
¿Eliminar?"c:\r.txt"
On?Error?GoTo?0
'Habilitar botón de comando
Command1.Enabled?=?True
Fin?Sub
¿Privado?Sub?Form_Load()
Texto1.Text?=?"
Texto2.Text?=?""
Fin?Sub
3) Resultados de la operación
Ping baidu.com se está ejecutando....
Resultados de la ejecución de Ping baidu.com