3

可能重复:
C# - 如何在 Windows Vista 64 位上获取程序文件 (x86)

我正在尝试从我自己的第三方程序中启动。我在Program Filesand中进行了快速搜索Program Files (x86),我刚刚意识到返回的路径getenv("ProgramFiles")实际上取决于我是在 x64 还是 Win32 中运行。

如何使用环境变量而不是硬编码名称搜索(在 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

看看这些 Stack Overflow 问题:

于 2012-06-22T05:03:59.287 回答
1

您可以使用以下方法获取它,

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