Возможный дубликат:
C # - Как получить программные файлы (x86) в 64-разрядной версии Windows Vista
Пытаюсь запустить стороннюю программу от себя. Я произвел быстрый поиск в 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 ...