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

Problème de compatiblité avec un vbs sous Windows 2000

3 réponses
Avatar
titoubc
Bonjour,

J'ai un script vbs qui me renvoie le chemin d'o=F9 est lanc=E9 une
application.
Voil=E0 le code:



Set objWMIService =3D GetObject("winmgmts:" _
& "{impersonationLevel=3Dimpersonate}!\\.\root\cimv2")

Set colProcesses =3D objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name =3D 'monApplication.exe'")

If colProcesses.Count =3D 0 Then
Wscript.Echo "No scripts are running."
Else

for each objProcess in colProcesses
if not isnull(objProcess.CommandLine) then
Wscript.Echo Right(Left(objProcess.CommandLine,
InStrRev(objProcess.CommandLine, "\") - 1),
Len(Left(objProcess.CommandLine, InStrRev(objProcess.CommandLine, "\")
- 1)) - 1)
exit for
end if
next


End If


Le script me renvoit par exemple "C:\MonApplication" que j'utilise
ensuite dans un batch.
Le script fonctionne tr=E8s bien sous XP, Vista et 2003 Serveur mais
impossible de la faire tourner sous du 2000...

L'erreur:
Ligne 12 Cara 9
Cet objet ne g=E8re pas cette propri=E9t=E9 ou cette m=E9thode
objProcess.CommandLine


Je m'y connais bien en batch mais pas du tout en Vbscript...

J'imagine que cel=E0 n'est pas g=E9r=E9 par Windows 2000 tout simplement.


Ma question est donc de savoir si il est possible, (via un script
compatible 2000) de r=E9cup=E9rer le chemin physique d'une application
lanc=E9e ?

Merci d'avance.

3 réponses

Avatar
Jacques Barathon [MS]
La doc en ligne pour Win32_Process indique bien que la propriété CommandLine
est apparue avec XP:
http://msdn2.microsoft.com/en-us/library/aa394372.aspx

La même doc indique la propriété ExecutablePath comme devant retourner le
chemin de l'application. Cette information semble être exactement ce que tu
cherches, non?

Jacques

wrote in message
news:
Bonjour,

J'ai un script vbs qui me renvoie le chemin d'où est lancé une
application.
Voilà le code:



Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!.rootcimv2")

Set colProcesses = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'monApplication.exe'")

If colProcesses.Count = 0 Then
Wscript.Echo "No scripts are running."
Else

for each objProcess in colProcesses
if not isnull(objProcess.CommandLine) then
Wscript.Echo Right(Left(objProcess.CommandLine,
InStrRev(objProcess.CommandLine, "") - 1),
Len(Left(objProcess.CommandLine, InStrRev(objProcess.CommandLine, "")
- 1)) - 1)
exit for
end if
next


End If


Le script me renvoit par exemple "C:MonApplication" que j'utilise
ensuite dans un batch.
Le script fonctionne très bien sous XP, Vista et 2003 Serveur mais
impossible de la faire tourner sous du 2000...

L'erreur:
Ligne 12 Cara 9
Cet objet ne gère pas cette propriété ou cette méthode
objProcess.CommandLine


Je m'y connais bien en batch mais pas du tout en Vbscript...

J'imagine que celà n'est pas géré par Windows 2000 tout simplement.


Ma question est donc de savoir si il est possible, (via un script
compatible 2000) de récupérer le chemin physique d'une application
lancée ?

Merci d'avance.
Avatar
Gilles LAURENT [MVP]
"" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| Ma question est donc de savoir si il est possible, (via un script
| compatible 2000) de récupérer le chemin physique d'une application
| lancée ?

A l'aide de la propriété ExecutablePath de la classe Win32_Process comme
justement indiqué par Jacques. Cette propriété contient le chemin
complet de l'exécutable en plus de son nom. Pour extraire uniquement le
dossier de démarrage :

Set oRe=New RegExp:oRe.Pattern="(.*)" ' greedy
WScript.Echo oRe.Execute(objProcess.ExecutablePath)(0).SubMatches(0)

Pour connaitre la ligne de commande (propriété WMI CommandLine) sur les
versions précédentes de Windows, il est nécessaire de s'appuyer sur un
outil tiers, tel que l'outil CmdLine.exe :
http://www.bearcanyon.com/tools/cmdline.zip

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
titoubc
A l'aide de la propriété ExecutablePath de la classe Win32_Process co mme
justement indiqué par Jacques. Cette propriété contient le chemin
complet de l'exécutable en plus de son nom. Pour extraire uniquement le
dossier de démarrage :

Set oRe=New RegExp:oRe.Pattern="(.*)" ' greedy
WScript.Echo oRe.Execute(objProcess.ExecutablePath)(0).SubMatches(0)

Pour connaitre la ligne de commande (propriété WMI CommandLine) sur l es
versions précédentes de Windows, il est nécessaire de s'appuyer sur un
outil tiers, tel que l'outil CmdLine.exe :http://www.bearcanyon.com/tools /cmdline.zip

--
Gilles LAURENT
MVP Windows Server - Admin Frameworkshttp://glsft.free.fr


Bonjour,

Je n'ai qu'une chose à dire.... MERCI MERCI MERCI c'est exactement ce
que je voulais.

A bientôt