OVH Cloud OVH Cloud

Help ! En VBS, récupérer la version de Excel.exe ?

6 réponses
Avatar
Patrick.
Comment r=E9cup=E9rer avec un VBS la version de excel, pour=20
v=E9rifier si c'est la derni=E8re version ( parc de 230 PC,=20
commande =E0 mettre au logon ).

Ex :
cscript test.vbs > resu.txt

Le probl=E8me, c'est que je connais pas du tout le VBS ...

Merci !

Patrick.

6 réponses

Avatar
sympatix
Salut !

Pose la question sur:
microsoft.public.fr.scripting

Cordialement
sympatix

Attention, est mon adresse antispam non valide.
Pour me répondre, supprimer "toto" merci.

"Patrick." a écrit dans le message de
news:0e5a01c3be6a$2cdf5330$
Comment récupérer avec un VBS la version de excel, pour
vérifier si c'est la dernière version ( parc de 230 PC,
commande à mettre au logon ).

Ex :
cscript test.vbs > resu.txt

Le problème, c'est que je connais pas du tout le VBS ...

Merci !

Patrick.



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.548 / Virus Database: 341 - Release Date: 05/12/2003
Avatar
Jean-Claude BELLAMY
Dans le message 0e5a01c3be6a$2cdf5330$,
Patrick. s'est ainsi exprimé :

Comment récupérer avec un VBS la version de excel, pour
vérifier si c'est la dernière version ( parc de 230 PC,
commande à mettre au logon ).

Ex :
cscript test.vbs > resu.txt

Le problème, c'est que je connais pas du tout le VBS ...



C'est hyper-simple (en local)

--------- couper ici ---------
Set oXL = WScript.CreateObject("EXCEL.application")
' Version numérique d'Excel
wscript.echo oXL.Application.Version
oXL.quit
--------- couper ici ---------

La version est affichée sous forme numérique :

Excel 97 : 8.0
Excel 2000 : 9.0
Excel XP : 10.0
Excel 2003 : 11.0


Si tu ne veux pas la partie décimale :

Set oXL = WScript.CreateObject("EXCEL.application")
Version=oXL.Application.Version
oXL.quit
p=InStr(Version,".")
If p>0 Then Version=left(Version,p-1)
wscript.echo Version


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Patrick
J'ai essayer le premier script, impéccable,
mais il me manque en fait toutes les décimales :
ex :
Excel version 9.0.0.6926 ( dans about sur excel,
ou properties sur excel.exe champ version ).

( Version qui m'indique que Excel a reçu les
derniers patchs contre les virus ... ).

As tu une idée pour tout récupérer ?

Merci !

Patrick.




-----Message d'origine-----
Dans le message 0e5a01c3be6a$2cdf5330$,
Patrick. s'est ainsi exprimé :

Comment récupérer avec un VBS la version de excel, pour
vérifier si c'est la dernière version ( parc de 230 PC,
commande à mettre au logon ).

Ex :
cscript test.vbs > resu.txt

Le problème, c'est que je connais pas du tout le VBS ...



C'est hyper-simple (en local)

--------- couper ici ---------
Set oXL = WScript.CreateObject("EXCEL.application")
' Version numérique d'Excel
wscript.echo oXL.Application.Version
oXL.quit
--------- couper ici ---------

La version est affichée sous forme numérique :

Excel 97 : 8.0
Excel 2000 : 9.0
Excel XP : 10.0
Excel 2003 : 11.0


Si tu ne veux pas la partie décimale :

Set oXL = WScript.CreateObject("EXCEL.application")
Version=oXL.Application.Version
oXL.quit
p=InStr(Version,".")
If p>0 Then Version=left(Version,p-1)
wscript.echo Version


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*


.




Avatar
Jean-Claude BELLAMY
Dans le message 08ce01c3bef9$21de0b40$,
Patrick s'est ainsi exprimé :

J'ai essayer le premier script, impéccable,
mais il me manque en fait toutes les décimales :
ex :
Excel version 9.0.0.6926 ( dans about sur excel,
ou properties sur excel.exe champ version ).

( Version qui m'indique que Excel a reçu les
derniers patchs contre les virus ... ).

As tu une idée pour tout récupérer ?


Oui, mais évidemment, ça complique un petit peu !

Le n° de version complète se trouve dans une clef
HKEY_LOCAL_MACHINESOFTWAREMicrosoftOffice11.0CommonProductVersion
Entrée "LastProduct" de type REG_SZ
Valeur (p.ex. chez moi où j'ai Office2003) : 11.0.3216.5614

de même, la clef HKLMSOFTWARE....10.0.......
contient 10.0.4330.0


On va utiliser la version retournée par l'objet Excel pour accéder à cette
clef (puisqu'elle est formée à partir du n° de version) :
------------ couper ici ------------
Set oXL = WScript.CreateObject("EXCEL.application")
Version=oXL.Application.Version
oXL.quit
Set shell = WScript.CreateObject("WScript.Shell")
Key1="HKEY_LOCAL_MACHINESOFTWAREMicrosoftOffice"
Key2="CommonProductVersionLastProduct"
FullVersion=shell.Regread Key1 & Version & Key2
wscript.echo FullVersion
------------ couper ici ------------


NB: je l'ai testé avec succès avec Office XP et Office 2003

Je ne sais pas si ces sous-clefs (CommonProductVersionLastProduct)
existaient dans les versions précédentes ..
Mais j'ai constaté une discordance enter la verison complète dans la BDR et
la veriso nde l'exécutable.
Chez moi la version affichée par excel.exe est 11.0.5612.0 (au lieu de
11.0.3216.5614)


Pour récupérer la version du fichier exécutable "excel.exe", on peut
procéder ainsi :
------------ couper ici ------------
Keyexe="HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionApp
Pathsexcel.exe"
PathExcel=shell.Regread(Keyexe)
Set fso=WScript.CreateObject("Scripting.FileSystemObject")
wscript.echo fso.GetFileVersion(PathExcel)
------------ couper ici ------------

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Les postes sont installés en Windows 2000.
Office 2000 pro US avec language pack francais + SR3.

->
La clef "ProductVersion" n'existe hélas pas
sous office9.0Common ...
J'ai d'autres choses, mais rien sur la version.
Il faudrait que MS uniforme d'avantage les choses ...

->
Le script suivant pour récupérer la version de Excel se
termine avec une erreur ... hélas je connais si mal VBS
que je n'arrive pas à voir quoi :

Erreur :
C:>cscript vers8.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits
réservés.

C:vers8.vbs(2, 1) Erreur d'exécution Microsoft VBScript:
Objet requis: 'shell'

LE script vers8.vbs :
***********
Keyexe="HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurre
ntVersionApp Pathsexcel.exe"
PathExcel=shell.Regread(Keyexe)
Set fso=WScript.CreateObject("Scripting.FileSystemObject")
wscript.echo fso.GetFileVersion(PathExcel)

***********

Merci.

Patrick.










-----Message d'origine-----
Dans le message 08ce01c3bef9$21de0b40$,
Patrick s'est ainsi
exprimé :


J'ai essayer le premier script, impéccable,
mais il me manque en fait toutes les décimales :
ex :
Excel version 9.0.0.6926 ( dans about sur excel,
ou properties sur excel.exe champ version ).

( Version qui m'indique que Excel a reçu les
derniers patchs contre les virus ... ).

As tu une idée pour tout récupérer ?


Oui, mais évidemment, ça complique un petit peu !

Le n° de version complète se trouve dans une clef
HKEY_LOCAL_MACHINESOFTWAREMicrosoftOffice11.0
CommonProductVersion

Entrée "LastProduct" de type REG_SZ
Valeur (p.ex. chez moi où j'ai Office2003) :
11.0.3216.5614


de même, la clef HKLMSOFTWARE....10.0.......
contient 10.0.4330.0


On va utiliser la version retournée par l'objet Excel
pour accéder à cette

clef (puisqu'elle est formée à partir du n° de version) :
------------ couper ici ------------
Set oXL = WScript.CreateObject("EXCEL.application")
Version=oXL.Application.Version
oXL.quit
Set shell = WScript.CreateObject("WScript.Shell")
Key1="HKEY_LOCAL_MACHINESOFTWAREMicrosoftOffice"
Key2="CommonProductVersionLastProduct"
FullVersion=shell.Regread Key1 & Version & Key2
wscript.echo FullVersion
------------ couper ici ------------


NB: je l'ai testé avec succès avec Office XP et Office
2003


Je ne sais pas si ces sous-clefs
(CommonProductVersionLastProduct)

existaient dans les versions précédentes ..
Mais j'ai constaté une discordance enter la verison
complète dans la BDR et

la veriso nde l'exécutable.
Chez moi la version affichée par excel.exe est
11.0.5612.0 (au lieu de

11.0.3216.5614)


Pour récupérer la version du fichier
exécutable "excel.exe", on peut

procéder ainsi :
------------ couper ici ------------
Keyexe="HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurr
entVersionApp

Pathsexcel.exe"
PathExcel=shell.Regread(Keyexe)
Set fso=WScript.CreateObject("Scripting.FileSystemObject")
wscript.echo fso.GetFileVersion(PathExcel)
------------ couper ici ------------

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*


.




Avatar
Jean-Claude BELLAMY
Dans le message 10d6d01c3bf0f$da23a690$,

s'est ainsi exprimé :

Les postes sont installés en Windows 2000.
Office 2000 pro US avec language pack francais + SR3.

->
La clef "ProductVersion" n'existe hélas pas
sous office9.0Common ...
J'ai d'autres choses, mais rien sur la version.
Il faudrait que MS uniforme d'avantage les choses ...
Ouais, çà c'est bien vrai !


Le script suivant pour récupérer la version de Excel se
termine avec une erreur ... hélas je connais si mal VBS
que je n'arrive pas à voir quoi :
[...]
C:vers8.vbs(2, 1) Erreur d'exécution Microsoft VBScript:
Objet requis: 'shell'

LE script vers8.vbs :
***********
Keyexe="HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionApp
Pathsexcel.exe"

PathExcel=shell.Regread(Keyexe)
Set fso=WScript.CreateObject("Scripting.FileSystemObject")
wscript.echo fso.GetFileVersion(PathExcel)


Rajoute en tête du script la ligne suivante :

Set shell=WScript.CreateObject("WScript.Shell")

(elle faisait partie du 1er script)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*