3

重複の可能性:
C# - Windows Vista 64 ビットでプログラム ファイル (x86) を取得する方法

自分のプログラムからサードパーティ プログラムを起動しようとしています。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になります...

4

2 に答える 2

1

これらのスタック オーバーフローの質問を見てください。

于 2012-06-22T05:03:59.287 に答える
1

以下を使用して取得できます。

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
于 2012-06-22T05:06:01.427 に答える