Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Contar las veces q está abierto un proceso

Estas en el tema de Contar las veces q está abierto un proceso en el foro de Visual Basic clásico en Foros del Web. Hola a Todos! ¿Cómo puedo saber cuántas veces esta abierto un proceso? Es que quiero hacer lo siguiente: Por ejemplo, contar cuantas veces esta abierto ...
  #1 (permalink)  
Antiguo 27/01/2006, 04:35
 
Fecha de Ingreso: enero-2006
Mensajes: 17
Antigüedad: 18 años, 3 meses
Puntos: 0
Contar las veces q está abierto un proceso

Hola a Todos!

¿Cómo puedo saber cuántas veces esta abierto un proceso?

Es que quiero hacer lo siguiente: Por ejemplo, contar cuantas veces esta abierto el proceso "calc.exe" para luego borrar todos los calc.exe que encuentre y dejar ejecutandose sólo uno.

Muchas Gracias!!
Un Saludo.
  #2 (permalink)  
Antiguo 27/01/2006, 04:38
Avatar de Frehley  
Fecha de Ingreso: junio-2005
Ubicación: Somewhere between Heaven and Hell
Mensajes: 415
Antigüedad: 18 años, 10 meses
Puntos: 0
Para eso podes crear una instancia:

If not app.previnstace then
Que siga el codigo
End if

Con esto lo que haces es que si el programa ya se encuentra abierto no lo abra.
__________________
diegoz.com.ar
  #3 (permalink)  
Antiguo 27/01/2006, 05:41
 
Fecha de Ingreso: enero-2006
Mensajes: 17
Antigüedad: 18 años, 3 meses
Puntos: 0
Buenas,

Gracias por la rápida respuesta Frehley
pero siento decir que no es eso exactamente lo que necesito hacer...
porque ese evento, como bien dices, salta justo cuando un programa va ha ejecutarse y al ver que ya existe no lo abre.

Mi caso es (siguiendo con el ejemplo de mi mensaje anterior), supongamos que se empiezan a abrir procesos de la calculadora debido a que hay unos archivos que se corrompen, entonces yo lo que hacía manualmente era borrar esos archivos y terminar todos los procesos que estuvieran abiertos de la calculadora, dejando solamente uno. Ahora estoy creando un programa que me haga ésto, para no tener que estar yo pendiente todo el día.

Mi programa me borra cada 2 horas esos archivos, entonces lo que yo ahora necesito comprobar es si durante esas dos horas de intervalo se han abierto procesos de la calculadora, y aqui viene mi duda, necesitaría saber cuántos procesos se han abierto, para borrar todos menos uno, y no sé cómo contarlos...

Usando el app.previnstace tendria que comprobar cada segundo si se está intentando abrir la calculadora, pero ésta operación utiliza muchos recursos y no puedo arriesgarme a ello ya que es un servidor.

Siento si antes no me he explicado bien, espero que ahora sí.

Muchas Gracias de todas formas
  #4 (permalink)  
Antiguo 27/01/2006, 09:38
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
en las faq's hay un ejemplo el cual cierra el proceso lo podes modificar para que cuente unicamente los el proceso determinado..

nos vemos...

P.D. esta en la última página
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #5 (permalink)  
Antiguo 27/01/2006, 12:14
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Ayuda de VisualGuallabo

En cuanto al codigo de la Faq' que yo subi Agregando esta function ya resuelves el problema. name es el nombre del proceso.

Option Explicit
Private NombreProceso, IdentificacionProceso, ParentIdentificacionProceso
Private PM As Class1, i As Integer

Function ProcesoUnico(name As String)
Dim Veces As Integer
Veces = 0
Set PM = New Class1
PM.ListRunningApps NombreProceso, IdentificacionProceso, ParentIdentificacionProceso

For i = 0 To UBound(NombreProceso)
If NombreProceso(i) = name Then
Veces = Veces + 1
End If
Next

If Veces = 1 Then Exit Function

For i = 0 To UBound(NombreProceso)
If NombreProceso(i) = name Then
PM.KillProcess IdentificacionProceso(i)
Veces = Veces - 1
If Veces = 1 Then Exit Function
DoEvents
End If
Next

End Function
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #6 (permalink)  
Antiguo 30/01/2006, 11:22
 
Fecha de Ingreso: enero-2006
Mensajes: 17
Antigüedad: 18 años, 3 meses
Puntos: 0
Muchisimas Gracias!!

Ha funcionado que bien!!



Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:43.