begin process at 2012 02 13 16:13:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Exécution

 > 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

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Exécution Classé sous :processus, memoire, taille, poids, récupérer Niveau :Initié Date de création :31/08/2004 Date de mise à jour :22/11/2005 18:31:55 Vu :10 895

Auteur : MadM@tt

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 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

Source avec Zip COMMUNICATION INTER-PROCESSUS (IPC)
Source avec Zip OPÉRATIONS SUR LES CHAINES DE CARACTÈRE OPTIMISÉES ET ÉTENDU...
Source avec Zip Source avec une capture FISHTANK - SCREENSAVER INTERACTIF : AQUARIUM AVEC POISSONS V...
Source avec Zip Source avec une capture RÉCUPÉRER LA TEMPÉRATURE DES DISQUES DURS
Source avec Zip Source avec une capture WIN++ OPTIONS AVANCÉES SUR LES FENETRES ET PROCESSUS WINDOWS...

 Sources de la même categorie

Source avec Zip CALCULATRICE par TPB
Source avec Zip Source .NET (Dotnet) PIERRE PAPIER CISEAUX par Ultrabytes
Source avec Zip Source avec une capture UN PATCH EN VB (V3) par PhoenixBytes
Source avec Zip Source .NET (Dotnet) [VB.NET 2008] EXECUTION MULTITHREAD DE PLUSIEURS FONCTION À ... par ShadowTzu
Source avec Zip Source avec une capture MULTITHREADING ACTIVEX par Philippe734

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture AUTORISER/REFUSER L'EXECUTION DE PROCESSUS par pierreh51
Source avec Zip Source .NET (Dotnet) LA LISTE DES TÂCHES COMME DANS L'ONGLET APPLICATION DU GESTI... par ShareVB
Source avec Zip FERMER UN PROGRAMME OU UN PROCESSUS par 123collargol
Source avec Zip Source .NET (Dotnet) AUTOMATISER LA SAISIE DE CLÉES CD EN RÉCUPERANT LE NOM DU PR... par cracken3544
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

Commentaires et avis

Commentaire de FeelCode le 01/09/2004 12:28:16

vala aussi un moment que je cherche ce code :))

pour ce qui est du retour 0 je pensse que sa doit être lier aux droit, et a l'api OpenProcess  qui ne peux pas toujours ouvrire le processus certaine appli comme zone alarme (pro )place une interdiction. Et certain le son par defaut  dans windows c e qui est normal

mai bon je peux me tromper :)

10/10 pour le code

Commentaire de MadM@tt le 01/09/2004 12:48:11

Merci FeelCode,
pour ce qui est ce la taille introuvable je veux bien te croire, mais il est forcément possible de la retrouver car elle est quand même affichée dans le gestionnaire de taches... Enfin bon il n'y en a pas trop qui sont interdit, ça passe encore.

Commentaire de FeelCode le 01/09/2004 13:00:32

ben il existe peut être un moyen de forcer l'ouverture du processus mai la je vois pas comment...

Commentaire de MadM@tt le 01/09/2004 13:03:28

Y'a pas une histoire de changer le privilège d'un processus non ? enfin je dis ça car j'ai vu des api qui contenaient ce mot dedans...

Commentaire de hhhp2004 le 06/07/2005 04:12:33

10/10

quelles sont les unites que GetProcessusSize est suppose renvoyer ? (bits, kbytes,etc) parce que si je divise par 1024^2 ca donne a peu pres la meme valeur que le gestionnaire de taches (k)

merci

Commentaire de MadM@tt le 07/07/2005 10:38:45

bonne question lol... cette source a un peu d'age.
Mais logiquement je dirais en octets donc si tu divise par 1024^2 ça te donne des méga

 Ajouter un commentaire


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


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 : 2,402 sec (4)

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