Microsoft Officeのインストールされているコンポーネントを検出する安全な方法は何ですか?

StackOverflow https://stackoverflow.com//questions/10703927

質問

Microsoft Officeのどのコンポーネントがある場合は、特定のワークステーションにインストールされているかを検出する最も安全な方法を探しています。これはServerfaultの質問と見なすこともできますが、これをスクリプトで使用し、多くの人がOfficeの内部動作に精通しているため、これが質問するのに最適な場

私はアンインストールキーを見てきましたが、実際にはシステム上に存在しないコンポーネントを示しています。これは、Officeが最初のアクセス時にコンポーネントをインストールする方法と関係があると思います。パスが理論的に変更される可能性があるため、実行可能ファイルを探すのは好きではありません。

役に立ちましたか?

解決

私は、32ビットと64ビットのWindowsインストールの違いを考慮して、特定のレジストリキーをテストしました。私は次のレジストリの場所/値に注意を払っています:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\-64ビットWindowsインストールのベースOffice12キー
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\-32ビットWindowsインストール上の基本Office12の場所
  • Office base path\Outlook\InstallRoot\Path-Outlookのインストールパスを示すキー
  • Office base path\Registration\{90120000-0012-0000-0000-0000000FF1CE}-オフィス12標準的なGUIDのためのキー
  • Office base path\Registration\{90120000-0011-0000-0000-0000000FF1CE}-GUIDとオフィス12の専門家のためのキー

これらの場所で私はすることができました:

  1. Officeがインストールされているかどうかを検出します。
  2. インストールされているOfficeのバージョンを検出します。
  3. Outlookがインストールされているかどうかを検出します。

私はこれ以上粒状にしようとはしていません。

他のヒント

EXEまたはDLLへのパスに頼ることができないと思う場合は、さまざまなコンポーネントをインストールするスナップショットの前後のレジストリ(これが存在するさまざまなツール)を差し込みます。しかし、私の経験では、オフィスのためのインストールされたコンポーネントを検出するためのDLLと他のファイルの存在をテストする必要があります(たとえば、Visual Basic Moduleの存在を検出するためにVBA DLLをテストしなければなりませんでした)。ファイルのパスはそれほど変化することができるだけです。32ビットと64ビットのパッチ適用、WinXPとWin7 Pathingの認識人である必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top