0

質問: 64 ビット マシンのレジストリで使用する%ProgramFiles(x86)%の [INSTALLDIR] に相当するものは何ですか?

64 ビット マシンの%ProgramFiles(x86)%内にインストールされるプログラムがあります。

基本的に、これらの値をレジストリに追加したい

値の名前:

(Default)

値のデータ:

"C:\Program Files (x86)\MyApp\MyApp.exe"  "%1"

上記の値のデータは正常に機能しますが、Windows が C:\ 以外の別のディレクトリにインストールされている可能性があるため、正確なパスを使用できません。

私は試した

値のデータ:

"[INSTALLDIR]MyApp.exe" "%1"

しかし、アプリケーションが見つからないというエラーが発生します。

レジストリで %ProgramFiles(x86)% のパスを取得するには、何を使用できますか? どんな助けでも本当に感謝します。

4

4 に答える 4

2

ここで重複する可能性があります。

 static string ProgramFilesx86()
 {
    if( 8 == IntPtr.Size 
        || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"))))
    {
        return Environment.GetEnvironmentVariable("ProgramFiles(x86)");
    }

    return Environment.GetEnvironmentVariable("ProgramFiles");
 }
于 2013-04-02T15:12:43.080 に答える
2

インストーラーが とマークされている場合は、 ProgramFilesFolderインストーラー プロパティx64を使用できます。

"[ProgramFilesFolder]MyApp\MyApp.exe" "%1"

x64モードでは、このプロパティはProgram x86Files フォルダーを指し、 ProgramFiles64Folderx64はProgram Files フォルダーを指します。

編集:インストーラーにキーと値を生成させる代わりにファイルをレジストリにインポートする場合はreg、代わりに環境変数を使用できます。

"%ProgramFiles(x86)%\MyApp\MyApp.exe" "%1"
于 2013-04-02T15:18:24.807 に答える
0

[INSTALLDIR]アプリケーションの名前が含まれます。だから訳すと

C:\Program Files (x86)\MyApp\MyApp\MyApp.exeあなたの例では。使ってみて

"[INSTALLDIR]MyApp.exe" "%1"
于 2013-04-02T15:12:29.607 に答える
0
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)
于 2013-04-02T15:28:17.850 に答える