VBA: liste des applications ouvertes
Stach
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
qq pourrai-t-il de mdonner le code VBA pour lister le nom de toute mes application et fenêtres en cours d'exécution.
j'ai bien essayé:
For Each Window in Windows
Debug.print Window.Name
next
Le seul problème est que ça ne me donne seulement le nom des fenêtre Excel ouvertes et pas celle des autres programmes (Word, nouvel email outlook par exemple,...)
Merci d'avance.
Stach ;-)
qq pourrai-t-il de mdonner le code VBA pour lister le nom de toute mes application et fenêtres en cours d'exécution.
j'ai bien essayé:
For Each Window in Windows
Debug.print Window.Name
next
Le seul problème est que ça ne me donne seulement le nom des fenêtre Excel ouvertes et pas celle des autres programmes (Word, nouvel email outlook par exemple,...)
Merci d'avance.
Stach ;-)
Configuration: Windows XP Internet Explorer 7.0
6 réponses
-
-
Bonjour,
Tu peux utiliser les objets de scripting, toutefois avec cette méthode
il te faudra différencier les "process" des applications.
Dim objWsProcess, objProc, Reseau, msgTexte Set Reseau = CreateObject("WScript.Network") Ordinateur = LCase(Reseau.ComputerName) Set objWsProcess = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & _ Ordinateur).InstancesOf("Win32_Process") For Each objProc in objWsProcess If ( ( CmptPtr - 1 ) < 10 ) Then msgTexte = msgTexte & "Ptr 0" & (CmptPtr - 1) & " = " & objProc.Name & vbCrLf Else msgTexte = msgTexte & "Ptr " & (CmptPtr - 1) & " = " & objProc.Name & vbCrLf End if Next Set objWsProcess = Nothing Set objProc = Nothing WScript.Echo msgTexte WScript.Quit(0)
Cdt
Lupin -
@Lupin :
Bonjour et merci pour ce poste qui m'aide bien.
Comment est initialisée la variable CmptPtr ? -
Bonjour,
CmptPtr = 1
For each ...
Cette variable n'est utilisée que pour former un label homogène
...
Ptr08
Ptr09
Ptr10
Ptr11
...
Si l'on veut opérer une manipulation de la variable PtrXY
celle-ci contient toujours le même nombre de caractères.
Cdt
Lupin -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Si je comprends bien, il doit y avoir un CmptPtr = CmptPtr + 1 quelque part... dans la boucle.
Et j'ai cru voir ailleurs qu'on peut même (pour faire simple) remplacer :
Set Reseau = CreateObject("WScript.Network")
Ordinateur = LCase(Reseau.ComputerName)
par :
Ordinateur ="."
Evidemment c'est moins générique. Mais en local ça fonctionne.
Merci en tous cas :-) -
re:
En effet, c'est bien cela pour la variable CmptPtr ...
Il manque son incrémentation ainsi que l'initialisation.
J'ai du placer ce code un peu trop vite, il faut m'en excuser.
Effectivement, le caractère [ . ] fonctionne en local,
mais je suis de nature explicite et ne sachant pas quels
étaient les besoins spécifiques du demandeur ...
Personne n'est parfait :-)
Cdt
Lupin