Accueil > > > LISTER LES PROCESSUS ACTIFS AVEC LES API
LISTER LES PROCESSUS ACTIFS AVEC LES API
Information sur la source
Description
Cette fonction, avec la valeur 0 renvoie le nb de process actifs Avec une valeur comprise entre 1 et le nb de processus, les énumerrent et renvoie le chemin ou le nom d' un de ces processus. Sinon, rien.
Source
- Private Declare Function _
- CloseHandle Lib "Kernel32.dll" (ByVal _
- Handle As Long) As Long
- Private Declare Function _
- OpenProcess Lib "Kernel32.dll" (ByVal _
- dwDesiredAccessas As Long, _
- ByVal bInheritHandle As Long, _
- ByVal dwProcId As Long) As Long
- Private Declare Function _
- EnumProcesses Lib "PSAPI.DLL" (ByRef _
- lpidProcess As Long, ByVal cb As Long, _
- ByRef cbNeeded As Long) As Long
- Private Declare Function _
- GetModuleFileNameExA Lib "PSAPI.DLL" (ByVal _
- bhProcess As Long, _
- ByVal hModule As Long, ByVal _
- ModuleName As String, _
- ByVal nSize As Long) As Long
- Private Declare Function _
- EnumProcessModules Lib "PSAPI.DLL" (ByVal _
- hProcess As Long, ByRef _
- lphModule As Long, ByVal cb As Long, ByRef _
- cbNeeded As Long) As Long
-
- Private Const PROCESS_QUERY_INFORMATION = 1024
- Private Const PROCESS_VM_READ = 16
- Private Const MAX_PATH = 260
-
- Private Type PROCESS_MEMORY_COUNTERS
- cb As Long
- PageFaultCount As Long
- PeakWorkingSetSize As Long
- WorkingSetSize As Long
- QuotaPeakPagedPoolUsage As Long
- QuotaPagedPoolUsage As Long
- QuotaPeakNonPagedPoolUsage As Long
- QuotaNonPagedPoolUsage As Long
- PagefileUsage As Long
- PeakPagefileUsage As Long
- End Type
- Private Type PROCESSENTRY32
- dwSize As Long
- cntUsage As Long
- th32ProcessID As Long ' Le processus
- th32DefaultHeapID As Long
- th32ModuleID As Long ' exe associé
- cntThreads As Long
- th32ParentProcessID As Long
- pcPriClassBase As Long
- dwFlags As Long
- szExeFile As String * 260
- End Type
-
- Private Function Processus(ByVal _
- ID As Integer) As String
-
- On Error Resume Next
-
- Dim booResult As Boolean
- Dim lngLength As Long
- Dim lngProcessID As Long
- Dim strProcessName As String
- Dim lngSnapHwnd As Long
- Dim udtProcEntry As PROCESSENTRY32
- Dim lngCBSize As Long
- Dim lngCBSizeReturned As Long
- Dim lngNumElements As Long
- Dim lngProcessIDs() As Long
- Dim lngCBSize2 As Long
- Dim lngModules(1 To 200) As Long
- Dim lngReturn As Long
- Dim strModuleName As String
- Dim lngSize As Long
- Dim lngHwndProcess As Long
- Dim lngLoop As Long
- Dim pmc As PROCESS_MEMORY_COUNTERS
- Dim strProcName, strProcName2 As String
- Dim NbProc, ListeProc(1 To 10000) As String
- NbProc = 0
-
- booResult = False
-
- ' nom de Explorer
- EXEName = "explorer.exe"
- EXEName = UCase$(Trim$(EXEName))
- lngLength = Len(EXEName)
-
- lngCBSize = 8
- lngCBSizeReturned = 96
-
- Do While lngCBSize <= lngCBSizeReturned
- DoEvents
- 'Incremente la taille
- lngCBSize = lngCBSize * 2
- 'Loue la mémoire
- ReDim lngProcessIDs(lngCBSize / 4) As Long
- 'Prends l' ID du processus
- lngReturn = EnumProcesses(lngProcessIDs(1), lngCBSize, lngCBSizeReturned)
- Loop
-
- 'Compte les processus
- lngNumElements = lngCBSizeReturned / 4
- For lngLoop = 1 To lngNumElements
- DoEvents
- 'Donne le handle du processus et l' ouvre
-
- lngHwndProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lngProcessIDs(lngLoop))
-
- If lngHwndProcess <> 0 Then
-
- lngReturn = EnumProcessModules(lngHwndProcess, lngModules(1), 200, lngCBSize2)
-
- If lngReturn <> 0 Then
- NbProc = NbProc + 1
- strModuleName = Space(MAX_PATH)
- lngSize = 500
- 'Prend le nom du processus
-
- lngReturn = GetModuleFileNameExA(lngHwndProcess, lngModules(1), strModuleName, lngSize)
-
- 'Enlève les espaces
- strProcessName = Left(strModuleName, lngReturn)
- ListeProc(NbProc) = strProcessName
- End If
- End If
- 'Ferme les handles du processus
- lngReturn = CloseHandle(lngHwndProcess)
- DoEvents
- Next
-
- If ID = 0 Then
- Processus = NbProc
- ElseIf ID > 0 And ID <= NbProc Then
- Processus = ListeProc(ID)
- Else
- Processus = ""
- End If
-
- End Function
-
-
- Sub Form_Load() 'pour l' appeller
-
- 'Si i=0 --> variable= nombre de procesus
- 'Sinon --> variable= nom ou chemin d' accès du processus "i"
-
-
- variable = Processus(i)
- MsgBox (variable)
-
- End Sub
-
Private Declare Function _
CloseHandle Lib "Kernel32.dll" (ByVal _
Handle As Long) As Long
Private Declare Function _
OpenProcess Lib "Kernel32.dll" (ByVal _
dwDesiredAccessas As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcId As Long) As Long
Private Declare Function _
EnumProcesses Lib "PSAPI.DLL" (ByRef _
lpidProcess As Long, ByVal cb As Long, _
ByRef cbNeeded As Long) As Long
Private Declare Function _
GetModuleFileNameExA Lib "PSAPI.DLL" (ByVal _
bhProcess As Long, _
ByVal hModule As Long, ByVal _
ModuleName As String, _
ByVal nSize As Long) As Long
Private Declare Function _
EnumProcessModules Lib "PSAPI.DLL" (ByVal _
hProcess As Long, ByRef _
lphModule As Long, ByVal cb As Long, ByRef _
cbNeeded As Long) As Long
Private Const PROCESS_QUERY_INFORMATION = 1024
Private Const PROCESS_VM_READ = 16
Private Const MAX_PATH = 260
Private Type PROCESS_MEMORY_COUNTERS
cb As Long
PageFaultCount As Long
PeakWorkingSetSize As Long
WorkingSetSize As Long
QuotaPeakPagedPoolUsage As Long
QuotaPagedPoolUsage As Long
QuotaPeakNonPagedPoolUsage As Long
QuotaNonPagedPoolUsage As Long
PagefileUsage As Long
PeakPagefileUsage As Long
End Type
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long ' Le processus
th32DefaultHeapID As Long
th32ModuleID As Long ' exe associé
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 260
End Type
Private Function Processus(ByVal _
ID As Integer) As String
On Error Resume Next
Dim booResult As Boolean
Dim lngLength As Long
Dim lngProcessID As Long
Dim strProcessName As String
Dim lngSnapHwnd As Long
Dim udtProcEntry As PROCESSENTRY32
Dim lngCBSize As Long
Dim lngCBSizeReturned As Long
Dim lngNumElements As Long
Dim lngProcessIDs() As Long
Dim lngCBSize2 As Long
Dim lngModules(1 To 200) As Long
Dim lngReturn As Long
Dim strModuleName As String
Dim lngSize As Long
Dim lngHwndProcess As Long
Dim lngLoop As Long
Dim pmc As PROCESS_MEMORY_COUNTERS
Dim strProcName, strProcName2 As String
Dim NbProc, ListeProc(1 To 10000) As String
NbProc = 0
booResult = False
' nom de Explorer
EXEName = "explorer.exe"
EXEName = UCase$(Trim$(EXEName))
lngLength = Len(EXEName)
lngCBSize = 8
lngCBSizeReturned = 96
Do While lngCBSize <= lngCBSizeReturned
DoEvents
'Incremente la taille
lngCBSize = lngCBSize * 2
'Loue la mémoire
ReDim lngProcessIDs(lngCBSize / 4) As Long
'Prends l' ID du processus
lngReturn = EnumProcesses(lngProcessIDs(1), lngCBSize, lngCBSizeReturned)
Loop
'Compte les processus
lngNumElements = lngCBSizeReturned / 4
For lngLoop = 1 To lngNumElements
DoEvents
'Donne le handle du processus et l' ouvre
lngHwndProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lngProcessIDs(lngLoop))
If lngHwndProcess <> 0 Then
lngReturn = EnumProcessModules(lngHwndProcess, lngModules(1), 200, lngCBSize2)
If lngReturn <> 0 Then
NbProc = NbProc + 1
strModuleName = Space(MAX_PATH)
lngSize = 500
'Prend le nom du processus
lngReturn = GetModuleFileNameExA(lngHwndProcess, lngModules(1), strModuleName, lngSize)
'Enlève les espaces
strProcessName = Left(strModuleName, lngReturn)
ListeProc(NbProc) = strProcessName
End If
End If
'Ferme les handles du processus
lngReturn = CloseHandle(lngHwndProcess)
DoEvents
Next
If ID = 0 Then
Processus = NbProc
ElseIf ID > 0 And ID <= NbProc Then
Processus = ListeProc(ID)
Else
Processus = ""
End If
End Function
Sub Form_Load() 'pour l' appeller
'Si i=0 --> variable= nombre de procesus
'Sinon --> variable= nom ou chemin d' accès du processus "i"
variable = Processus(i)
MsgBox (variable)
End Sub
Conclusion
Je l' ai testé sous Win XP. Il parait que çà marche pas sous Win9x.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|