Question

Je recherche le moyen le plus sûr de détecter quels composants de Microsoft Office, le cas échéant, sont installés sur un poste de travail donné.Je réalise que cela pourrait également être considéré comme une question pour Serverfault, mais comme je vais l'utiliser dans un script et que de nombreuses personnes ici connaissent mieux le fonctionnement interne d'Office, j'ai pensé que ce serait le meilleur endroit pour poser la question.

J'ai regardé la clé de désinstallation, mais elle montre des composants qui n'existent pas réellement sur le système.Je pense que cela est lié à la manière dont Office peut installer un composant lors du premier accès.Je n'aime pas chercher des exécutables car le chemin peut théoriquement changer.

Était-ce utile?

La solution

J'ai fini par tester des clés de registre spécifiques, en tenant compte des différences entre les installations Windows 32 et 64 bits.Je fais attention aux emplacements/valeurs de registre suivants :

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\: la clé de base Office12 sur une installation Windows 64 bits
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\: l'emplacement de base d'Office12 sur une installation Windows 32 bits
  • Office base path\Outlook\InstallRoot\Path: clé indiquant le chemin d'installation d'Outlook
  • Office base path\Registration\{90120000-0012-0000-0000-0000000FF1CE}—Clé pour le GUID standard d'Office 12
  • Office base path\Registration\{90120000-0011-0000-0000-0000000FF1CE}—Clé pour le GUID d'Office 12 Professionnel Plus

Avec ces emplacements, j'ai pu :

  1. Détectez si Office est installé.
  2. Détectez la version d'Office installée.
  3. Détectez si Outlook est installé.

Je n’ai pas tenté d’être plus précis que cela.

Autres conseils

Si vous pensez vraiment que vous ne pouvez pas compter sur les chemins vers EXE ou DLL, je diffèverais le registre (de nombreux outils existants) des instantanés avant et après l'installation des différents composants.Cependant, dans mon expérience, je trouve nécessaire de tester des fichiers de DLL et d'autres fichiers de détection de composants installés au bureau (je devais tester pour les DLL VBA pour détecter la présence du module Visual Basic installé, par exemple).Les chemins des fichiers ne peuvent changer que beaucoup.Vous devez juste être conscient d'un patching 32 bits et de 64 bits, de la route WinXP et de Win7.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top