# 為何 C++ 程式無法在 Program Files 新增資料夾? ###### tags: `C++`, `問題記錄`, `lab 專案` 📌 **為何 C++ 程式無法在 C:/Program Files 新增資料夾?** ➡️ 原因 程式的 UAC 權限不足,無法存取 “C:/Program Files” 必須調整程式的 UAC 權限,讓程式能以 “系統管理員” 執行 ➡️ 解決方式 專案 > 屬性 > 連結器 (Linker) > 資訊清單檔 (Manifest File) > UAC 執行層級 (UAC Exec. Level) > 將預設的「asInvoker (/level='asInvoker')」 改為「requireAdministrator (/level='requireAdministrator')」 > 原本 IDE 不是 "以系統管理員開啟" 所以更改 C++ 程式專案的 UAC 後直接執行程式,應會被 IDE 要求重啟 重啟再執行一次,C++ 程式就可在 C:/Program Files 新增資料夾 📌 **程式安裝在Program Files 或 Program Files (x86),有什麼差別?** 64 位元的程式會自動安裝在 Program Files 32 位元的程式會自動安裝在 Program Files (x86) 📌 **為何許多支援 64 位元的軟體,安裝路徑還是放在 `C:\Program Files (x86)`?** 因為這些軟體所使用的 Installer (安裝程式) 仍然是 32 bits 的版本~沒有升級 當解譯路徑 %PROGRAMFILES% 時, Windows 會回應 C:\Program Files (x86) 很可能是十幾年前舊版的 Installer 買了之後就一直沿用 造成安裝過程都會放在 (x86) 下面 📌 **相關資料 - 補充** ➡️ Run VBS script as elevated user (UAC) https://www.itsupportguides.com/knowledge-base/windows-7/windows-7-run-vbs-script-as-elevated-user-uac/ 📌 **參考資料** 1. C++: Run program as administrator https://stackoverflow.com/questions/19617955/c-run-program-as-administrator 2. 【客戶詢問】程式安裝在Program Files 或 Program Files (x86),有什麼差別? https://ofeyhong.pixnet.net/blog/post/224888671 3. 為何許多支援 64 位元的軟體,安裝路徑還是放在 `C:\Program Files (x86)`? https://ithelp.ithome.com.tw/questions/10199630