• Domingo 22 de Diciembre de 2024, 14:37

Autor Tema:  Ejecucion De Un *.exe  (Leído 2806 veces)

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Ejecucion De Un *.exe
« en: Jueves 17 de Febrero de 2005, 22:35 »
0
:devil:
Hola a tod@s.
Alguno sabe o tiene una rutina que detecte si un ejecutable esta en funcionamiento.
 :comp:
Saludos.
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Ejecucion De Un *.exe
« Respuesta #1 en: Jueves 17 de Febrero de 2005, 22:40 »
0
Hola juravi, busca en el foro por lista de procesos, creo que hay unos posts acerca de eso, tengo unas rutinas por ahi, pero las tengo en la casa, dame tiempo y las busco.
Ok Chao.
El pasado son solo recuerdos, el futuro son solo sueños

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Ejecucion De Un *.exe
« Respuesta #2 en: Viernes 18 de Febrero de 2005, 10:29 »
0
Hola.

Seguramente esto te sirva:
En una dimensión devuelve el pId y en otra el ejecutable.

Código: Text
  1.  
  2. Option Explicit
  3.  
  4. Private Type PROCESSENTRY32
  5.     dwSize As Long
  6.     cntUsage As Long
  7.     th32ProcessID As Long
  8.     th32DefaultHeapID As Long
  9.     th32ModuleID As Long
  10.     cntThreads As Long
  11.     th32ParentProcessID As Long
  12.     pcPriClassBase As Long
  13.     dwFlags As Long
  14.     szExeFile As String * 260
  15. End Type
  16. Private Declare Function CreateToolhelpSnapshot Lib &#34;kernel32&#34; Alias &#34;CreateToolhelp32Snapshot&#34; (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
  17. Private Declare Function ProcessFirst Lib &#34;kernel32&#34; Alias &#34;Process32First&#34; (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  18. Private Declare Function ProcessNext Lib &#34;kernel32&#34; Alias &#34;Process32Next&#34; (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  19. Private Declare Sub CloseHandle Lib &#34;kernel32&#34; (ByVal hPass As Long)
  20.  
  21. Public Sub GetProcesos(ByRef Tareas() As String)
  22.  
  23.     Dim lSnapShot As Long
  24.     lSnapShot = CreateToolhelpSnapshot(2&, 0&)
  25.    
  26.     If lSnapShot &#60;&#62; 0 Then
  27.         Dim Proceso As PROCESSENTRY32
  28.         Proceso.dwSize = Len(Proceso)
  29.         Dim lRc As Long, lCta As Long
  30.         lRc = ProcessFirst(lSnapShot, Proceso)
  31.         Do While lRc
  32.             lCta = lCta + 1
  33.             If lCta &#62; 1 Then
  34.                 ReDim Preserve Tareas(2, lCta)
  35.             Else
  36.                 ReDim Tareas(2, 1)
  37.             End If
  38.             Tareas(0, lCta - 1) = Proceso.th32ProcessID
  39.             Tareas(1, lCta - 1) = Left(Proceso.szExeFile, InStr(Proceso.szExeFile, Chr(0)) - 1)
  40.             lRc = ProcessNext(lSnapShot, Proceso)
  41.         Loop
  42.         CloseHandle lSnapShot
  43.     End If
  44.  
  45. End Sub
  46.  
  47.  

Chau.

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Re: Ejecucion De Un *.exe
« Respuesta #3 en: Viernes 18 de Febrero de 2005, 14:45 »
0
:devil:
Hola a todos,
Brroz gracias por la rutina, pero me da pena desirlo.. no se usarla.. me puedes explicar donde usarla.. La puse en un formulario, luego en un modulo y nada.
RadicalEd si me puedes proporsionar tu rutina tambien te lo agradeceria..
Saludos. :hola:
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Ejecucion De Un *.exe
« Respuesta #4 en: Viernes 18 de Febrero de 2005, 16:27 »
0
Mira este Zip, sirve para ver los procesos, es creado por guille.
Ojala te sirva.
Chao
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
El pasado son solo recuerdos, el futuro son solo sueños

Cyclop

  • Miembro MUY activo
  • ***
  • Mensajes: 323
    • Ver Perfil
    • http://www.geocities.com/icotext/spanish/
Re: Ejecucion De Un *.exe
« Respuesta #5 en: Viernes 18 de Febrero de 2005, 17:02 »
0
buscalo en www.pscode.com ahi hay buenos ejemplos.

Salu2

Cyclopz
Icotext Evolution v0.5 para los amantes del ASCII Art
http]

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Re: Ejecucion De Un *.exe
« Respuesta #6 en: Viernes 18 de Febrero de 2005, 17:39 »
0
:devil:
Hola  a todos.
 :alien:
 RadicalEd, gracias por el archivo.. esta bn pro. Voy a modificarlo para mi conveniencia.
 :alien:
Cyclop, gracias por la pagina.. manana sabado lo reviso en mi ksa con calma. ya que en la empresa me tienen un poco restringido.
 :alien:
Brroz, si tubieras tiempo y me pudieras explicar tu rutina se te agradeceria.
 :hola:
Saludos.
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Ejecucion De Un *.exe
« Respuesta #7 en: Sábado 19 de Febrero de 2005, 08:35 »
0
Puedes usar el código en un módulo estándard, módulo de clase o formulario.

Llama al método GetProcesos pasándole como parámetro una matriz de tipo string que habrás declarado previamente. Cuando el método se haya ejecutado, tendrás en la matriz el id de proceso de cada tarea con su correspondiente ejecutable.

Código: Text
  1.  
  2. .
  3. .
  4. .
  5. Dim sProc() As String
  6. GetProcesos sProc
  7. Dim iCta As Integer, iIdx As Integer
  8. iCta = Ubound(sProc)
  9. Form iIdx=0 To iCta - 1
  10.    MsgBox sProc(0, iIdx) & &#34; - &#34; & sProc(1, iIdx)
  11. Next iIdx
  12. .
  13. .
  14. .
  15.  
  16.  

Chao.