Programación General > Visual Basic 6.0 e inferiores

 Ayuda

(1/1)

hunter:
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:
Hola hunter.

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


--- Código: Text --- Private Type PROCESSENTRY32    dwSize As Long    cntUsage As Long    th32ProcessID As Long    th32DefaultHeapID As Long    th32ModuleID As Long    cntThreads As Long    th32ParentProcessID As Long    pcPriClassBase As Long    dwFlags As Long    szExeFile As String * 260End TypePrivate Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As LongPrivate Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As LongPrivate Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As LongPrivate Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long) Public Sub GetProcesos(Procesos() As Variant)    Dim lngSnapShot As Long    lngSnapShot = CreateToolhelpSnapshot(2&, 0&)    If lngSnapShot <> 0 Then        Dim Proceso As PROCESSENTRY32        Proceso.dwSize = Len(Proceso)        Dim lngRc As Long, lngCta As Long        lngRc = ProcessFirst(lngSnapShot, Proceso)        Do While lngRc            lngCta = lngCta + 1            ReDim Preserve Procesos(2, lngCta)            Procesos(0, lngCta - 1) = Proceso.th32ProcessID            Procesos(1, lngCta - 1) = Left(Proceso.szExeFile, InStr(Proceso.szExeFile, Chr(0)) - 1)            lngRc = ProcessNext(lngSnapShot, Proceso)        Loop        CloseHandle lngSnapShot    End IfEnd Sub  
Suerte.

Navegación

[0] Índice de Mensajes

Ir a la versión completa