Accueil > > > CONNAITRE LA TAILLE DE LA MÉMOIRE UTILISÉE PAR UN PROCESSUS (COMME DANS CTRL+ALT+SUPPR)
CONNAITRE LA TAILLE DE LA MÉMOIRE UTILISÉE PAR UN PROCESSUS (COMME DANS CTRL+ALT+SUPPR)
Information sur la source
Description
Je cherchais ce code depuis longtemps, et je suis tombé sur une source de Tilois qui permettait de faire ça. Seulement sa source était beaucoup plus grande que nécessaire donc je l'ai reprogrammé au plus simple possible et ça marche. Vous n'avez donc besoin que de 37 lignes pour faire ça. Une fonction, elle vous renvoie la taille utilisée par un processus (il faut donner son Identificateur). Attention, cela ne fonctionne que sous 2k et XP...
Source
- ' A balancer direct dans un module :
-
- Option Explicit
- ' Les api nécessaires
- Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
- Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
- Public Declare Function GetProcessMemoryInfo Lib "PSAPI.DLL" (ByVal HProcess As Long, ppsmemCounters As PROCESS_MEMORY_COUNTERS, ByVal cb As Long) As Long
- ' Le type de données qui va décrire notre processus
- 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
- ' Les constantes requises
- Public Const PROCESS_QUERY_INFORMATION = 1024
- Public Const PROCESS_VM_READ = 16
- Public Const MAX_PATH = 260
-
- ' Renvoie la taille de la mémoire occupée par un processus
- Public Function GetProcessusSize(ProcessID As Long) As Long
- Dim HProcess As Long
- Dim pmc As PROCESS_MEMORY_COUNTERS
- Dim Ret As Long
- ' Récupère le handle du processus à partir de son identifiant
- HProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, ProcessID)
- ' On prépare pmc
- pmc.cb = LenB(pmc)
- ' On récupère les infos du processus
- Ret = GetProcessMemoryInfo(HProcess, pmc, pmc.cb)
- GetProcessusSize = Str(pmc.WorkingSetSize)
- Ret = CloseHandle(HProcess)
- End Function
' A balancer direct dans un module :
Option Explicit
' Les api nécessaires
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function GetProcessMemoryInfo Lib "PSAPI.DLL" (ByVal HProcess As Long, ppsmemCounters As PROCESS_MEMORY_COUNTERS, ByVal cb As Long) As Long
' Le type de données qui va décrire notre processus
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
' Les constantes requises
Public Const PROCESS_QUERY_INFORMATION = 1024
Public Const PROCESS_VM_READ = 16
Public Const MAX_PATH = 260
' Renvoie la taille de la mémoire occupée par un processus
Public Function GetProcessusSize(ProcessID As Long) As Long
Dim HProcess As Long
Dim pmc As PROCESS_MEMORY_COUNTERS
Dim Ret As Long
' Récupère le handle du processus à partir de son identifiant
HProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, ProcessID)
' On prépare pmc
pmc.cb = LenB(pmc)
' On récupère les infos du processus
Ret = GetProcessMemoryInfo(HProcess, pmc, pmc.cb)
GetProcessusSize = Str(pmc.WorkingSetSize)
Ret = CloseHandle(HProcess)
End Function
Conclusion
A noter qu'avec certains processus (mais rarement) ça renvoie 0, je ne sais pas d'ou vient cette erreur, si quelqu'un a une info... @ + tout le monde MadMatt
Historique
- 22 novembre 2005 18:31:55 :
- Ajout des mots clés
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Récupérer la taille d'un fichier sur un serveur distant [ par Sab ]
Salut,Comment dois-je procéder pour récupérer la taille d'un fichier sur un serveur existant ? J'ai essayé FileLen mais ça ne passe pas.Merci pour vot
taille d'un tableau Excel [ par xalimero ]
Bonjour tout le monde!!!J'ai besoin de récupérer la taille exacte d'un tableauExcel à partir de VB6En fait, il s'agit de données sur une feuille qui n
Modification taille memoire [ par ellenac ]
BonjourJ'ai besoin de creer un objet qui me permettrait sur un parc de 400 PC de modifier la taille du swap selon les infos recuperées sur le poste.ex
Largeur et la Longueur d'une image [ par kuss ]
Je voulais "simplement" savoir si quelqu'un sait comment lire la Largeur et la Longueur d'une image située sur le disque sans la charger ni l'ouvrir .
Récupérer la taille d'une icône lue par ExtractIconEx ? [ par chrisrol ]
Bonjour, je cherche à récupérer les infos de taille, nombre de couleurs, etc. d'une icône que j'affiche dans un picture de la fa&#
Type et Taille de Police [ par linasteph ]
Bonjour,Pour les besoin d'une de mes applications je développe une form "FontDialog" spécifique.J'aimerais savoir comment je peux faire pour récupérer
Récupérer le pourcentage d'utilisation d'un processus [ par niluje ]
Bonjour,J'ai cherché sur le forum et ai trouvé une réponse à cette question mais elle n'était pas affirmative à 100%. Alors je demande confirmation :E
Comment récupérer la taille d'un CD ou d'un DVD dans le lecteur? [ par titi4mai ]
Voilà, je travaille sous VB.NET mais des astuces sous VB6 m'iraient aussi!! :)Je n'arrive pas à récupérer la taille d'un CD inséré dans le lecteur (65
Récupérer valeurs d'un champ selon sa taille [ par laurentsimon ]
Bonjour à tous ! Je souhaite exécuter une requête sous VB6 avec comme critère le nombre de caractères du champ : - exemple (sous a
Récupérer le chemin complet de l'éxécutable d'un processus en connaissant son nom [ par vinc2 ]
Bonjour,Depuis quelques temps je cherche une fonction capable de récupérer le chemin complet d'un ".exe" par son nom de processus, mais mes recherches
|
Derniers Blogs
TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz 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
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate 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
|