Processus

cs_freegamer Messages postés 99 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 16 juin 2007 - 26 juin 2005 à 17:52
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 26 juin 2005 à 22:31
Bonjours,

Je cherche à connaitre soit le chemin des processus lancés sans passer par la DLL PSAPI, soit a obtenir leurs tailles

Merci de me repondre.

FREEGAMER

13 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juin 2005 à 18:30
LISTE PROCESSUS PAR API NATIVE (WIN32)
http://www.cppfrance.com/code.aspx?id=17658

ciao...
BruNews, MVP VC++
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
26 juin 2005 à 19:22
Connaitre le chemin des processus : Sous 98 ilm est dans le nom du processus directement.

Sous XP :

Public Declare Function OpenProcess Lib "kernel32" (ByVal
dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal
dwProcessId As Long) As Long

' Enumére les modules d'un processus

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

' Pour récupérer le chemin d'accès complet d'un processus

' Pour NT/2000/XP/2003... seulement

' Renvoie le nom du module "hModule" du processus "hProcess" (ouvert avec OpenProcess)

Public Declare Function GetModuleFileNameEx Lib "psapi.dll" Alias
"GetModuleFileNameExA" (ByVal hProcess As Long, ByVal hModule As Long,
ByVal lpFilename As String, ByVal nSize As Long) As Long

'accès en lecture de la mémoire

Public Const PROCESS_VM_READ As Long = (&H10)

'accès en collecte d'informations

Public Const PROCESS_QUERY_INFORMATION As Long = (&H400)

Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long



' Renvoie le chemin complet du processus

Public Function GetProcessFileName(ProcessID As Long) As String

On Error GoTo Fin

' Processus 0

If ProcessID = 0 Then

GetProcessFileName = "[System Process]"

' Processus 4

ElseIf ProcessID = 4 Then

GetProcessFileName = "System"

Else

' On cherche son chemin d'accès complet

Dim hProcess As Long 'handle du processus

Dim hModule As Long 'handle du module de l'exe

Dim Ret As Long 'résultat

' On demande un handle pour le processus

hProcess =
OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0&,
ProcessID)

' Si erreur (accès refusé)

If hProcess = 0 Then GoTo Fin

' On demande le handle du module de l'exe

EnumProcessModules hProcess, hModule, 4&, Ret

' On préformatte la chaine

GetProcessFileName = Space(260)

' On récupère son nom complet

GetModuleFileNameEx hProcess, hModule, GetProcessFileName, 260

' On ferme le handle ouvert

CloseHandle hProcess

' On retire le vbNUllChar de fin de chaine

GetProcessFileName =
Left$(GetProcessFileName, InStr(GetProcessFileName, vbNullChar) - 1)

End If

Exit Function

Fin:

GetProcessFileName = "Inconnu"

End Function





Pour la taille mémoire du processus :

http://www.vbfrance.com/code.aspx?ID=25836



J'espère que ça te suffira



Ciaò
MadMatt
http://matthieu.napoli.neuf.fr/wintools.html
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
26 juin 2005 à 19:25
Ptain de merde BruNews t'es MVP !!!



J'avais jamais remarqué chu con !!



J'avais déjà énormément de respect pour tes conseils et toi meme mais alors la lol



J'atteris sur terre mdr
Ciaò
MadMatt
http://matthieu.napoli.neuf.fr/wintools.html
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juin 2005 à 19:42
he vi depuis un certain temps déjà, ça nous rajeunit pas tout ça...

Au fait, il a demandé SANS psapi.dll.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_freegamer Messages postés 99 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 16 juin 2007
26 juin 2005 à 19:52
Merci de me repondre si vite, mais comme le precisse BruNews, je voudrais le faire sans psapi.dll, sinon je voudrais savoir comment recuperer leur taille en octect sur le disque dur

FREEGAMER
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juin 2005 à 20:06
T'es allé voir le lien, tu as vu comment on fait sans psapi ???
Si ok on continue:
Chaque fichier tu le passes par FindFirstFile qui te remplira une Win32_FIND_DATA et tu auras la taille sur 64 bits dans ses champs.
0
cs_freegamer Messages postés 99 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 16 juin 2007
26 juin 2005 à 21:14
Oui je suis aller voir le lien, et en VB sans donne quoi ?
Sinon serais tu comment obtenir la taille de l'application par son processus ?

FREEGAMER
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
26 juin 2005 à 21:34
Oups désolé je ne me souvenait pas du tout que ça utilisait cette libraire
Ciaò
MadMatt
http://matthieu.napoli.neuf.fr/wintools.html
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juin 2005 à 21:35
1) rien (mais je l'ai pas dit fort).
2) "taille de l'application" kesako ??? un processus est fait d'un exe et de toutes ses dépendances.
0
cs_freegamer Messages postés 99 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 16 juin 2007
26 juin 2005 à 21:50
Justement je cherche à obtenir la taille de l'exe correspondant au processus

FREEGAMER
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juin 2005 à 22:00
réponse de 20:06:06 pour taille exe.
0
cs_freegamer Messages postés 99 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 16 juin 2007
26 juin 2005 à 22:10
Enfait j'aimerais pouvoir avoir la taille de l'executable correspondant au processus en octect, soit en connaissant le chemin complet soit lister les processus avec leur taille directement.

En fait j'aimerais faire comme cette source : http://www.vbfrance.com/code.aspx?ID=20821 mais sans utiliser psapi.dll

Merci de me repondre

FREEGAMER
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juin 2005 à 22:31
ben enfin, c'est soit en utilisant psapi soit comme dans ma source (ce que fait psapi en interne), y a pas 36 méthodes. Ensuite reste à savoir si c'est traductible en VB sans plantage, à toi d'essayer.
0
Rejoignez-nous