Liste de process word et excel via api - VB/VBA/VBS - Programmation
Marsh Posté le 26-08-2003 à 14:34:05
mouff a écrit : salut
|
le % du CPU, ce n'est pas du tout la même API, c'est une fonction qui appartient à la *.dll, kernel32.dll. J'ai oublié son nom depuis, mais tu la trouveras dans API windows (cf ma signature). Aprés si tu veux savoir le pourcentage que prend chaque fichier excel ouvert, je ne sais pas, c'est peut-être une variante de l'API dont je te parle (tu as même l'exemple).
Marsh Posté le 26-08-2003 à 14:40:17
bon ben je vais regarder une à une
Marsh Posté le 26-08-2003 à 14:41:42
mouff a écrit : bon ben je vais regarder une à une |
c'est cell-ci. Une fois comprise, par des calculs que tu n'as pas dans l'exemple te permettront de trouver le pourcentage de mémoire disponible...
Code :
|
Marsh Posté le 26-08-2003 à 14:49:35
ne sachant combien de mem prend mes process, je vois pas comment à partir de cette fonction api, je peux en déduire le %cpu pour chaque process
Marsh Posté le 26-08-2003 à 14:55:05
pour chaque process, je ne sais pas, par contre, tu as le pourcentage total utilisé "dwMemoryLoad est le pourcentage de mémoire actuellement utilisé." et ça, "dwTotalVirtual retourne la mémoire totale pouvant être utilisée par l'application courante (en octets)". Pour le reste, je sais plus. Essaye d'aller sur www.vbfrance.com pour voir si tu trouves la solution à ton problème...
Marsh Posté le 27-08-2003 à 11:43:46
pour la partie 'libel' de la fenetre, voici ce que j'ai reussi a faire finalement.
mon code précédent me donner l'instance du process mais pas de la fenetre (ce qui peut se reveler different). Et j'avais besoin de passer par la liste des process et non des handles fenetres pour x raisons (dont la possibilité de voir les instances excel/word ouvertes en ole...) donc, en donnant le pid du process, la fonction qui suit va me chercher le texte de la fenetre si existe
Citation : |
Par contre, je trouve toujours pas pour le %CPU
Marsh Posté le 27-08-2003 à 12:18:40
mouff a écrit : pour la partie 'libel' de la fenetre, voici ce que j'ai reussi a faire finalement.
|
si tu arrive à savoir combien de RAM te prend les process ouvert, tu peux ensuite faire une régle de 3 avec l'API que t'as été voir hier. Elle te permet de trouver la RAM libre et tu as une variable qui te donne ce que sa prend en charge pour le CPU...
*************
régle de 3
*************
% CPU machine (variable. dwMemoryLoad de l'API GlobalMemoryStatus) -----------> RAM prise (API windows GlobalMemoryStatus. Ce sont des calculs entre les secteur libre,ect...va voir l'exemple)
valeure aprés calcul du CPU -----------> RAM que te prenne les process (c'est à toi de trouver. comment, aucune idée !)
**************
je ne vois pas d'autre solution
Marsh Posté le 27-08-2003 à 13:05:01
attend attend, le %CPU n'est pas une valeur par rapport au temps de calcul du processeur de la machine ??? Ca n'a normalement aucun lien avec la RAM
Marsh Posté le 27-08-2003 à 13:19:46
mouff a écrit : attend attend, le %CPU n'est pas une valeur par rapport au temps de calcul du processeur de la machine ??? Ca n'a normalement aucun lien avec la RAM |
le liens se trouve où ? Dés que tu fais monter la RAM tu vois la courbe du % CPU s'affoler, s'il y a d'autre facteur, je les connais pas...
Marsh Posté le 27-08-2003 à 13:24:04
evidemment quand un calcul se fait, le process nécessite la ram pour stock ces variables, mais clairement, les %CPU ne sont pas intrinséquement liés avec le %RAMutilisé pour déduire une équation entre ces deux valeurs.
où alors une putain d'équation mathématique à n-variables que je mettrais 15 ans à comprendre
Marsh Posté le 27-08-2003 à 13:26:00
mouff a écrit : evidemment quand un calcul se fait, le process nécessite la ram pour stock ces variables, mais clairement, les %CPU ne sont pas intrinséquement liés avec le %RAMutilisé pour déduire une équation entre ces deux valeurs. |
sur www.vbfrance.com, tu n'as pas trouvé d'exemple sur le calcul des ressources machine ou l'équation dont tu parles ?
Marsh Posté le 27-08-2003 à 13:32:26
nop, juste trouve comment avoir le CPU global ou comment avoir le graph.
juste trouvé ça http://www.vbfrance.com/forum.aspx?Article=76275 qui m'a aussi calmé un peu
mais, je ne desespére pas
Marsh Posté le 27-08-2003 à 13:43:59
mouff a écrit : nop, juste trouve comment avoir le CPU global ou comment avoir le graph. |
VB et le courage sa va ensemble !
Marsh Posté le 25-08-2003 à 16:45:56
salut
Avec le code suivant (utilisation d'API):
hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0& )
If hSnapshot = 0 Then Exit Sub
'parcours des process
uProcess.dwSize = Len(uProcess)
r = ProcessFirst(hSnapshot, uProcess)
Do While r
'Word
If InStr(1, UCase(uProcess.szexeFile), "WINWORD.EXE" ) And WinWord Then
NbWord = NbWord + 1
ProcessManagerWindow.FGrid_Word.AddItem uProcess.th32ProcessID & Chr(9) & "nom fenetre" & Chr(9) & "00" & Chr(9) & " ", 1
End If
'Excel
If InStr(1, UCase(uProcess.szexeFile), "EXCEL.EXE" ) And Excel Then
NbExcel = NbExcel + 1
ProcessManagerWindow.FGrid_Excel.AddItem uProcess.th32ProcessID & Chr(9) & "nom fenetre" & uProcess.th32ProcessID & Chr(9) & "00" & Chr(9) & " ", 1
End If
r = ProcessNext(hSnapshot, uProcess)
Loop
je peux lister les process word et excel. je voudrais en plus, savoir l'intitulé des fenetres des process pas mort (genre 'Microsoft excel - fichier1.xls' ) et le % en cpu...Vous pouvez m'aider ???
---------------
Il suffit de me dire de me taire...