Поиск в ProgramFiles и ProgramFiles(x86) с использованием переменных среды в C++ и C# / VB.NET
Возможный дубликат:
C# - Как получить программные файлы (x86) в Windows Vista 64 бит
Я пытаюсь запустить стороннюю программу от себя. Я сделал быстрый поиск в Program Files
а также 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 все время...
2 ответа
Посмотрите на эти вопросы переполнения стека:
Вы можете получить это, используя следующие,
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)