begin process at 2012 02 15 02:54:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

API

 > 

SYNTHESE PROCESSUS, HANDLE, THREAD, (MODULE) & gestion des processus ?!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SYNTHESE PROCESSUS, HANDLE, THREAD, (MODULE) & gestion des processus ?!

jeudi 26 mai 2005 à 15:32:54 | SYNTHESE PROCESSUS, HANDLE, THREAD, (MODULE) & gestion des processus ?!

youkizouki




                                          
jeudi 26 mai 2005 à 15:51:42 | Re : SYNTHESE PROCESSUS, HANDLE, THREAD, (MODULE) & gestion des processus ?!

nawakator

Message de CanisLupus lui même copier d'un inconnu

Salut, j'ai un truc, c pas de moi et je ne sais plus ou je l'ai trouvé mais je m'en sers et merci à celui (ou celle) qui l'a codé en prem.

D'abord, tu te crées un module ou te mets ce qui suit :

Public Declare Function Process32First Lib "kernel32" ( _
ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long

Public Declare Function Process32Next Lib "kernel32" ( _
ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long

Public Declare Function CloseHandle Lib "Kernel32.dll" _
(ByVal Handle As Long) As Long

Public Declare Function OpenProcess Lib "Kernel32.dll" _
(ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, _
ByVal dwProcId As Long) As Long

Public Declare Function EnumProcesses Lib "psapi.dll" _
(ByRef lpidProcess As Long, ByVal cb As Long, _
ByRef cbNeeded As Long) As Long

Public Declare Function GetModuleFileNameExA Lib "psapi.dll" _
(ByVal hProcess As Long, ByVal hModule As Long, _
ByVal ModuleName As String, ByVal nSize As Long) As Long

Public Declare Function EnumProcessModules Lib "psapi.dll" _
(ByVal hProcess As Long, ByRef lphModule As Long, _
ByVal cb As Long, ByRef cbNeeded As Long) As Long

Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" ( _
ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long

Public Declare Function GetVersionExA Lib "kernel32" _
(lpVersionInformation As OSVERSIONINFO) As Integer

Public 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 * 260
End Type

Public Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long


szCSDVersion As String * 128
End Type

Public Const PROCESS_QUERY_INFORMATION = 1024
Public Const PROCESS_VM_READ = 16
Public Const MAX_PATH = 260
Public Const STANDARD_RIGHTS_REQUIRED = &HF0000
Public Const SYNCHRONIZE = &H100000

Public Const PROCESS_ALL_ACCESS = &H1F0FFF
Public Const TH32CS_SNAPPROCESS = &H2&
Public Const hNull = 0

Function StrZToStr(s As String) As String
StrZToStr = Left$(s, Len(s) - 1)
End Function

Public Function getVersion() As Long
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer
osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
getVersion = osinfo.dwPlatformId
End Function

Ensuite, tu te crées une form avec une listbox (list1) et 2 boutons (cmdEnum et cmdQuit) et tu y mets ça :

Private Sub cmdEnum_Click()
List1.Clear

Select Case getVersion()

Case 1

Dim f As Long
Dim sname As String
Dim hSnap As Long
Dim proc As PROCESSENTRY32
hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If hSnap = hNull Then Exit Sub
proc.dwSize = Len(proc)

f = Process32First(hSnap, proc)
Do While f
sname = StrZToStr(proc.szExeFile)
List1.AddItem sname
f = Process32Next(hSnap, proc)
Loop

Case 2
Dim cb As Long
Dim cbNeeded As Long
Dim NumElements As Long
Dim ProcessIDs() As Long
Dim cbNeeded2 As Long
Dim NumElements2 As Long
Dim Modules(1 To 200) As Long
Dim lRet As Long
Dim ModuleName As String
Dim nSize As Long
Dim hProcess As Long
Dim i As Long

cb = 8
cbNeeded = 96
Do While cb <= cbNeeded
cb = cb * 2
ReDim ProcessIDs(cb / 4) As Long
lRet = EnumProcesses(ProcessIDs(1), cb, cbNeeded)
Loop
NumElements = cbNeeded / 4

For i = 1 To NumElements

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION _
Or PROCESS_VM_READ, 0, ProcessIDs(i))

If hProcess <> 0 Then

lRet = EnumProcessModules(hProcess, Modules(1), 200, _
cbNeeded2)

If lRet <> 0 Then
ModuleName = Space(MAX_PATH)
nSize = 500
lRet = GetModuleFileNameExA(hProcess, Modules(1), _
ModuleName, nSize)
List1.AddItem Left(ModuleName, lRet)
End If
End If

lRet = CloseHandle(hProcess)
Next

End Select
End Sub


Private Sub cmdQuit_Click()
End
End Sub

Tu exécutes et tu vois le résultat. Je te laisse le soin de rediriger le résultat vers un fichier plutot que vers la listbox.
Ca marche avec W95, W98 et WXP.

Bonne prog

Cordialement

CanisLupus et Nawakator( vive le copier coller)



Cette discussion est classée dans : module, handle, thread, processus, synthese


Répondre à ce message

Sujets en rapport avec ce message

Aide icônes handle [ par LogOff ] Bonjour,je cherche à créer un substitut de ma barre des tâches de windows.j'ai déja trouvé comment hooker les messages système pour détecter l'ouvertu Utiliser un event dans un module (utilisation des threads) [ par lapoisse ] Bonjour,J'utilise un thread pour effectuer un traitement en tache de fond. ça marche trés bien.J'ai mis la fonction de thread dans un module (sinon ça Utiliser un event dans un module (utilisation des threads) [ par lapoisse ] Bonjour,J'utilise un thread pour effectuer un traitement en tache de fond. ça marche trés bien.J'ai mis la fonction de thread dans un module (sinon ça un thread en vbs ? est-ce possible ? [ par johann91 ] Bonjour, Je souhaiterais savoir si il est possible de créer une sorte de thread en vbs, ou alors un processus qui tournerait en permanence. En effet, invoke et module [ par Anakkin ] Bonjour, J'ai un probleme avec un module qui contient des fonctions pour la gestion du thread.Mon formulaire principal contient un textbox et un bouto Thread et module [ par Anakkin ] Bonjour, J'ai un probleme avec un module qui contient des fonctions pour la gestion du thread.Mon formulaire principal contient un textbox et un bouto Pourcentage d'un processus thread ou process CPU [ par DavidT ] Comme le gestionnaire de tache, il existe la possibilité de de visualiser sur un système NT la mémoire physique consommée par un process déterminé par handle , exe , thread, PID, ModuleID [ par finelame ] Bonjour tout le monde,Bon voila ... j'ai une toute petite kestion : comment ca marche les handle , exe , thread, PID, ModuleID .... et blabla .. tout Commander par le Handle [ par ZedMaTrix ] Bonjours a tous amis programmeur !! Voila, j'ai créé une application qui liste les processus lancé sur une machine et récupère le PID ou Handle ( c'es Passer word en priorité haute (SetPriorityClass) [ par Thibaut77 ] Bonjour à tous, J’ai développé une petite appli qui au cours du déroulement rédige un rapport sous word. Pour des problèmes de performances, j’ai bes


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales