最好的和通用的方式来获得路径“程序文件”,是从注册表查询它:
64位进程可以查询: HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \ ProgramFilesDir的 获得 “C:\ Program Files文件” HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\的Windows \ CurrentVersion \ ProgramFilesDir的 获得“C:\程序文件(x86)”
32位进程(WOW64)可以查询: HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \ ProgramFilesDir的 获得 “C:\ Program Files文件(x86)的” HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ ProgramFilesDir与KEY_WOW64_64KEY选项! 获得 “C:\ Program Files文件”
伪代码:
OpenKey(hKey, HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion", KEY_READ | KEY_WOW64_64KEY);
QueryStringValue(hKey, L"ProgramFilesDir", sValue);
你不应该依赖于你的程序 “预计”。应用程序是用户想要它们的地方。小型SSD越来越受欢迎,它们将为许多PC增加额外的安装位置。 – MSalters 2009-01-15 15:29:39
完全,但在这种情况下,它确实会在程序文件文件夹中。 – 2009-01-17 01:10:28
对我来说,为什么要更新Chrome的扩展列表,这可能在AppData,Program Files(x86)或Program Files中。 (当然,Program Files的名字可能是别的。) – tofutim 2011-09-20 20:57:49