我正在尝试从我自己的第三方程序中启动。我在Program Files
and中进行了快速搜索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 ......