[R] Version de Microsoft Office

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Davyly
Niveau 3
Niveau 3
Messages : 31
Enregistré le : dim. 08 févr. 2009 23:25
Status : Hors ligne

[R] Version de Microsoft Office

#1

Message par Davyly »

Bonsoir,

Je suis confronté à un souci dans l'écriture d'un petit logiciel pour mon entreprise :? Les "PC" ne sont pas tous équipés de la même version d'Office. On y trouve du 2000, du 2003 et bien sur du 2007.

Je chercher un moyen pour récupérer la version exacte d'Office installé sur le poste. Et si plusieurs versions d'office installées sur le poste, celle "déclarée" par défaut car mon programme utilise l'include <Word.au3>.

J'ai besoin de cette information car la suite du programme y compris le remplacement temporaire du normal.dot(m) est différent pour chaque version.

Connaissez-vous un moyen pour récupérer cette information :?: :?: J'ai regardé sur le net, dans la base de registre mais rien de précis et d'efficace.

Je me tourne donc vers vous, si vous avez une idée ou une piste ...

Merci d'avance :wink:
Bonne soirée.
Modifié en dernier par Davyly le dim. 14 mars 2010 12:18, modifié 1 fois.
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [..] Version de Microsoft Office

#2

Message par jl56 »

Bonjour

Je pensais que la base de registre aurait suffit mais si tu as testé

je te propose un udf CompInfo.au3 qui permet via le WMI d'avoir plein d'info sur le pc

je viens de le tester et pour la partie get software j'obtiens des infos sur ms office
par contre pour la version par défaut je ne sais pas

pour CompInfo.au3 recherche sur ce forum ou sur le forum anglais
il a également un exemple CompInfoExamples.au3

a+ jl56
Davyly
Niveau 3
Niveau 3
Messages : 31
Enregistré le : dim. 08 févr. 2009 23:25
Status : Hors ligne

Re: [..] Version de Microsoft Office

#3

Message par Davyly »

Bonsoir,

Merci pour ton aide.
J'ai regardé CompInfo.au3 mais rien de probant ... :(

Sinon j'ai réussi à trouver une piste dans la base de registre. J'ai donc écris le code suivant :

Code : Tout sélectionner

$appli = "Winword.exe"
MsgBox(0, "Microsoft Office", "La version de l'application  """ & $appli & """ est :  " & _office_version($appli))
Exit

Func _office_version($app)
    $file = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" & $app, "")
    $file_version = StringSplit(FileGetVersion($file), ".")
    Switch $file_version[1]
        Case 7
            $version = "97"
        Case 8
            $version = "98"
        Case 9
            $version = "2000"
        Case 10
            $version = "2002"
        Case 11
            $version = "2003"
        Case 12
            $version = "2007"
        Case Else
            $version = "0"
    EndSwitch
    Return $version 
EndFunc
J'ai testé sur mon poste et cela semble fonctionner.

Pouvez-vous tester et me dire ce qu'il en est de votre coté ?

Merci et bonne soirée.
A+
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Version de Microsoft Office

#4

Message par Tlem »

Fonctionne sous mon XP SP3 avec Office 2000. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [..] Version de Microsoft Office

#5

Message par jl56 »

je suis sous XP SP3
et ca fonctionne avec mon office 2003

A+ JL56
Davyly
Niveau 3
Niveau 3
Messages : 31
Enregistré le : dim. 08 févr. 2009 23:25
Status : Hors ligne

Re: [..] Version de Microsoft Office

#6

Message par Davyly »

Bonjour,

Merci à vous deux ... :wink:

Je viens de tester dans un environnement virtuel et comme pour vous, cela semble fonctionner. J'ai commencé par Office 2003 puis installé Office 2007 en parallèle. Et suivant la version de word déclaré par "défaut", j'ai la bonne version en retour. Puis reset de la "VM" et installation d'Office 2002 avec un résultat conforme.

Je considére ce poste comme résolu car il correspond à mon besoin. J'ai malgré tout un sentiment d'insatisfaction car apparenté à du "bidouillage" :?

J'aurais certainement préféré une méthode plus directe, un appel d'un Obj/Com, une requête WMI ou autre ... Je me fais peut être du mal pour rien ...
En tout cas, n'hésiter pas à "poster" une autre méthode, je suis preneur.

Bonne journée et bon dimanche.
A+
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Version de Microsoft Office

#7

Message par Tlem »

L'appel à une fonction WMI ne vous apporterait rien de plus puisque le WMI se base sur le système et donc pour certains éléments la base de registre. ;)

Après, si vous trouvez que la lecture de la version de Word est du bidouillage, il est possible de faire autrement, mais ce sera sans nul doute plus compliqué.

La seconde solution serait de lire la clé :

Code : Tout sélectionner

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office
De vérifier les versions présentes :
- Office 8.0
- Office 9.0
- Office 11.0
et de regarder dans quelle clé on trouve les sous clé Access, Excel, Word, etc ...
Il faudra aussi pouvoir faire la conversion de la version. ;)
Office 9.0 = Office 2000
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre