VBA: lista de aplicaciones abiertas
Stach
-
Usuario anónimo -
Usuario anónimo -
Hola,
¿alguien podría darme el código VBA para listar el nombre de todas mis aplicaciones y ventanas en ejecución?
he probado:
For Each Window in Windows
Debug.print Window.Name
next
El único problema es que solo me devuelve el nombre de las ventanas de Excel abiertas y no de los otros programas (Word, nuevo correo de Outlook por ejemplo,...)
Gracias de antemano.
Stach ;-)
¿alguien podría darme el código VBA para listar el nombre de todas mis aplicaciones y ventanas en ejecución?
he probado:
For Each Window in Windows
Debug.print Window.Name
next
El único problema es que solo me devuelve el nombre de las ventanas de Excel abiertas y no de los otros programas (Word, nuevo correo de Outlook por ejemplo,...)
Gracias de antemano.
Stach ;-)
Configuración: Windows XP Internet Explorer 7.0
6 respuestas
-
QUIKYLAND (ajouté par Google) -- Profitez-en !
Soyez Français, achetez Français -- Be French, buy French -
Hola,
Puedes usar objetos de scripting, sin embargo con este método
tendrás que diferenciar los "process" de las aplicaciones.
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 :
Hola y gracias por esta publicación, me ayuda mucho.
¿Cómo se inicializa la variable CmptPtr? -
Hola,
CmptPtr = 1
Para cada uno ...
Esta variable solo se utiliza para formar una etiqueta homogénea
...
Ptr08
Ptr09
Ptr10
Ptr11
...
Si se quiere realizar una manipulación de la variable PtrXY
esta siempre contiene el mismo número de caracteres.
Cdt
Lupin -
Hola,
Si entiendo bien, debe haber un CmptPtr = CmptPtr + 1 en algún lugar... en el bucle.
Y creí ver en otro sitio que incluso se puede (para hacer simple) reemplazar:
Set Reseau = CreateObject("WScript.Network")
Ordinateur = LCase(Reseau.ComputerName)
por :
Ordinateur ="."
Evidentemente es menos genérico. Pero en local funciona.
Gracias de todos modos :-) -
re:
En efecto, eso es correcto para la variable CmptPtr ...
Le falta su incremento así como la inicialización.
Tuve que colocar este código un poco demasiado rápido, debo disculparme.
Efectivamente, el carácter [ . ] funciona en local,
pero soy de naturaleza explícita y sin saber cuáles
eran las necesidades específicas del solicitante ...
Nadie es perfecto :-)
Saludos
Lupin