自分のプログラムからサードパーティ プログラムを起動しようとしています。Program Files
とで簡単な検索を行ったところ、実際に返されるパスは、x64 で実行しているか Win32 で実行しているかによって異なるProgram Files (x86)
ことに気付きました。getenv("ProgramFiles")
ハードコーディングされた名前ではなく、環境変数を使用して( C++ と C# または VB.NET の両方で) 両方の Program Files フォルダーを検索するにはどうすればよいですか?別のバージョンにインストールされていますか?
私のコードは今:C++で:
fs::path root_directory = fs::path(getenv("ProgramFiles"));
// and then I change to
root_directory = fs::path(getenv("ProgramFiles(x86)"));
VB.NET で:
System.Environment.GetEnvironmentVariable("ProgramFiles")
このソースを見ました:http://msdn.microsoft.com/en-us/library/aa365743
しかし、彼らの言うことを実装すると、常にx86になります...