Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Liste des applications ouvertes en mémoires

2 réponses
Avatar
Yves Haenni
Bonjour,


J'ai le bout de code que voici qui me permet de faire afficher la liste de
toutes les applications Excel ouvertes en mémoire :

For i = 1 To Application.Workbooks.Count
MsgBox Application.Workbooks(i).Name
Next i

Je serais reconnaissant si on pouvait m'indiquer quel code utiliser pour
faire afficher non seulement les fichiers Excel ouverts, mais toutes autres
applications ouvertes en mémoire, que ce soit Excel ou autre chose.

Merci d'avance

Yves

2 réponses

Avatar
Frédéric Sigonneau
Bonsoir,

Deux solutions possibles ici :

http://frederic.sigonneau.free.fr/code/Excel/ListeTachesActives1.txt
http://frederic.sigonneau.free.fr/code/Excel/ListeTachesActives2.txt

Et une autre postée l'an dernier par Michel Pierron (code à recopier dans un
module standard) :

'==================== Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" _
(ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" _
(ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias _
"CreateToolhelp32Snapshot" (ByVal lFlags As Long, lProcessID As Long) As Long

Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szexeFile As String * 260
End Type

Sub ListeDesProcess()
Dim hSnapshot As Long
hSnapshot = CreateToolhelpSnapshot(2&, 0&)
If hSnapshot = 0 Then Exit Sub
Dim uProcess As PROCESSENTRY32, r As Long, i As Integer
uProcess.dwSize = Len(uProcess)
r = ProcessFirst(hSnapshot, uProcess)
Do While r
i = i + 1
Cells(i, 1) = uProcess.szexeFile
r = ProcessNext(hSnapshot, uProcess)
Loop
End Sub
'====================
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Bonjour,


J'ai le bout de code que voici qui me permet de faire afficher la liste de
toutes les applications Excel ouvertes en mémoire :

For i = 1 To Application.Workbooks.Count
MsgBox Application.Workbooks(i).Name
Next i

Je serais reconnaissant si on pouvait m'indiquer quel code utiliser pour
faire afficher non seulement les fichiers Excel ouverts, mais toutes autres
applications ouvertes en mémoire, que ce soit Excel ou autre chose.

Merci d'avance

Yves




Avatar
Yves Haenni
Merci pour tant de sollicitude ! La réponse a de loin dépassé mes attentes.
Serait-il possible d'avoir un rendu plus concis ? Je m'explique : lorsqu'on
lance le Gestionnaire de tâches de Windows, on peut lire les tâches ouvertes
soit dans l'onglet "Applications" soit dans l'onglet "Processus".

Y aurait-il moyen de n'avoir que les "Applications" ?

Encore merci pour toute aide !

Yves

"Frédéric Sigonneau" a écrit dans le message de
news:Oef%
Bonsoir,

Deux solutions possibles ici :

http://frederic.sigonneau.free.fr/code/Excel/ListeTachesActives1.txt
http://frederic.sigonneau.free.fr/code/Excel/ListeTachesActives2.txt

Et une autre postée l'an dernier par Michel Pierron (code à recopier dans
un

module standard) :

'==================== > Private Declare Function ProcessFirst Lib "kernel32" Alias
"Process32First" _

(ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next"
_

(ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias _
"CreateToolhelp32Snapshot" (ByVal lFlags As Long, lProcessID As Long) As
Long


Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szexeFile As String * 260
End Type

Sub ListeDesProcess()
Dim hSnapshot As Long
hSnapshot = CreateToolhelpSnapshot(2&, 0&)
If hSnapshot = 0 Then Exit Sub
Dim uProcess As PROCESSENTRY32, r As Long, i As Integer
uProcess.dwSize = Len(uProcess)
r = ProcessFirst(hSnapshot, uProcess)
Do While r
i = i + 1
Cells(i, 1) = uProcess.szexeFile
r = ProcessNext(hSnapshot, uProcess)
Loop
End Sub
'==================== >
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Bonjour,


J'ai le bout de code que voici qui me permet de faire afficher la liste
de


toutes les applications Excel ouvertes en mémoire :

For i = 1 To Application.Workbooks.Count
MsgBox Application.Workbooks(i).Name
Next i

Je serais reconnaissant si on pouvait m'indiquer quel code utiliser pour
faire afficher non seulement les fichiers Excel ouverts, mais toutes
autres


applications ouvertes en mémoire, que ce soit Excel ou autre chose.

Merci d'avance

Yves