我正在使用Windows 7和Microsoft Visual Studio 2010.如果文件的名稱包含「update」,Windows會強制UAC提升文件?
我創建了一個簡單的項目,其中一個MessageBox()
調用WinMain()
。該項目的名稱是"update"
,所以EXE文件的名稱是update.exe
。我在鏈接器設置中關閉了清單生成。但是當我嘗試在Visual Studio中開始調試時,它說我的應用程序需要提升。
我決定通過在Windows資源管理器中單擊它來啓動應用程序,但它仍然需要管理員權限。我將它重命名爲update12345.exe
和12345update12345.exe
,但它仍然需要提升。
但是,當我將其重命名爲12345.exe
時,它在沒有請求管理員權限的情況下完美運行!我認爲Windows需要提升所有名稱包含"update"
子字符的文件。因此,我從SysInternals DebugView中取出另一個文件(debugview.exe
),並將其重命名爲update.exe
- 但它沒有提升。
這種奇怪行爲的原因是什麼?
您沒有正確構建程序,它缺少聲明它意識到UAC的清單。這對於Visual Studio來說很難做到,通過使用項目模板來開始您的項目,落在成功的大坑裏。 –
我一直開發沒有清單的項目,他們完美地工作。我的項目設計爲可在任何Windows系統上運行,並且不需要任何需要UAC的任何操作。但麻煩在於文件名:如果它包含「更新」,它需要UAC,否則它啓動並且完美地工作。 – deselect
Hmya,他們完美地工作,直到你碰到某種類型的牆。像這個。當你在註冊表中進行訪問並在禁止訪問的地方訪問文件時,你會有更多驚喜。清單的存在對舊版Windows不具有任何作用,但不知道它們的含義。 –