Option Explicit ' アップグレードコードから、製品コードを取得 ' ' 第1引数 : アップグレードコード(「{」、「}」、ハイフンあり) Function GetProductCodeFromUpgradeCode(UpgCode) Dim listProductCode Dim szProductCode ' アップグレードコードから、関連する製品名のリストを取得 Set listProductCode = Session.Installer.RelatedProducts(UpgCode) ' 基本、1件のみヒットするものとする For Each szProductCode In listProductCode GetProductCodeFromUpgradeCode = szProductCode ' 1件目を取得した段階で抜ける Exit For Next End Function ' アップグレードコードから既にインストール済みのアプリケーションのインストールパスを取得する Sub GetInstallPath() Dim WshShell Dim szProductCode Dim szInstallStringKey Set WshShell = CreateObject("WScript.Shell") ' アップグレードコードから、製品コードを取得 szProductCode = GetProductCodeFromUpgradeCode(Session.Property("UpgradeCode")) ' レジストリのInstallLocationを取得 szInstallStringKey = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + szProductCode + "\InstallLocation") Session.Property("INSTALLDIR_FOR_MAJORUPGRADE") = szInstallStringKey Set WshShell = nothing End Sub