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
Ir a la versión completa