• Viernes 8 de Noviembre de 2024, 13:52

Autor Tema:  Ayuda  (Leído 902 veces)

hunter

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Ayuda
« en: Lunes 22 de Diciembre de 2003, 00:37 »
0
Hola
Alguien me podria decir que es lo que debo de hacer
para saber al instante cuando alguien ha cargado un programa
y como se llama el programa o el hwnd de la ventana del programa
Gracias

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Ayuda
« Respuesta #1 en: Lunes 22 de Diciembre de 2003, 10:06 »
0
Hola hunter.

Podrías usar una función de este estilo para conocer los procesos activos:

Código: Text
  1.  
  2. Private Type PROCESSENTRY32
  3.     dwSize As Long
  4.     cntUsage As Long
  5.     th32ProcessID As Long
  6.     th32DefaultHeapID As Long
  7.     th32ModuleID As Long
  8.     cntThreads As Long
  9.     th32ParentProcessID As Long
  10.     pcPriClassBase As Long
  11.     dwFlags As Long
  12.     szExeFile As String * 260
  13. End Type
  14. Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
  15. Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  16. Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  17. Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
  18.  
  19. Public Sub GetProcesos(Procesos() As Variant)
  20.     Dim lngSnapShot As Long
  21.     lngSnapShot = CreateToolhelpSnapshot(2&, 0&)
  22.     If lngSnapShot <> 0 Then
  23.         Dim Proceso As PROCESSENTRY32
  24.         Proceso.dwSize = Len(Proceso)
  25.         Dim lngRc As Long, lngCta As Long
  26.         lngRc = ProcessFirst(lngSnapShot, Proceso)
  27.         Do While lngRc
  28.             lngCta = lngCta + 1
  29.             ReDim Preserve Procesos(2, lngCta)
  30.             Procesos(0, lngCta - 1) = Proceso.th32ProcessID
  31.             Procesos(1, lngCta - 1) = Left(Proceso.szExeFile, InStr(Proceso.szExeFile, Chr(0)) - 1)
  32.             lngRc = ProcessNext(lngSnapShot, Proceso)
  33.         Loop
  34.         CloseHandle lngSnapShot
  35.     End If
  36. End Sub
  37.  
  38.  

Suerte.