Programación General > Visual Basic 6.0 e inferiores

 Shell Con Vuelta De Datos

(1/1)

Roll:
Hola gente

Necesito hacer lo siguiente:

kiero hacer un ping a una makina remota y comprobar si esta encendida... he probado con el Shell de esta manera

Shell "ping 000.000.000.000 > uno.txt", vbHide

Para luego comprobar el txt y ver si los paketes q envia se han recibido correctamente.

Pero el problema es q la instruccion del Shell no me crea el archivo  :blink:

Alguna idea de porq? lo estoy haciendo mal??

Saludos! :comp:

ebolo:
Hola Roll, hazlo de esta forma:


--- Citar ---Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const STILL_ACTIVE = &H103
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess&, ByVal bInheritHandle&, ByVal dwProcessId&) _
As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) _
As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long



Sub EsperarShell(sCmd As String)

Dim hShell As Long
Dim hProc As Long
Dim codExit As Long

' ejecutar comando
hShell = Shell(Environ$("Comspec") & " /c " & sCmd, 2)

' esperar a que se complete el proceso
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)

Do
  GetExitCodeProcess hProc, codExit
  DoEvents
Loop While codExit = STILL_ACTIVE

End Sub

Private Sub Command4_Click()
   EsperarShell ("ping 192.168.0.15 >C:\uno.txt")
End Sub

--- Fin de la cita ---

La función Esperarshell, no es mía, pero no me acuerdo de donde la conseguí, o sino pondría su origen. A cada uno sus méritos.
Saludos.

Roll:
funciona perfecto,

GRACIAS :)

Navegación

[0] Índice de Mensajes

Ir a la versión completa