最好的和通用的方式來獲得路徑「程序文件」,是從註冊表查詢它:
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