2010-02-12 77 views
3

我有一個在VS Studio 2008中開發的MFC應用程序,該應用程序讀取和寫入安裝文件夾中的JSON文件。它可以在Vista(管理員)中完美工作,但只有在UAC關閉時纔有效。當UAC打開時,應用程序無法寫入其JSON文件。我想我必須創建一個清單文件,但我還沒有真正嘗試過創建清單文件。如何使你的MFC應用程序在Windows7和Vista中繞過UAC

問題:

  1. 參考:http://msdn.microsoft.com/en-us/library/bb384691.aspx。 它在這裏說你可以在Visual Studio開發環境中簡單地設置鏈接器選項。 我需要選擇什麼值:
    a)啓用用戶帳戶控制(UAC)? [我試過了]。

    b)UAC執行級別? [我試過最高可用]。

    c)和UAC Bypass UI保護? [我試過是的]。

  2. 是否需要在軟件包(exe,Dll's等)中添加清單文件?

謝謝...

回答

12

UAC的整個概念是你不能繞過它。如果可以的話,這將是無用的。

唯一的解決方案(這是你應該做的,不僅僅是因爲UAC)是永遠不會寫入安裝文件夾中的文件,而是寫入屬於它的%APPDATA%。

+0

我對此很晚了,但可以繞過:https://github.com/hfiref0x/UACME – Kappa 2017-08-21 19:02:00

3

您應該將此文件複製到應用程序數據。在Program Files中修改文件將始終觸發UAC提示。此操作需要管理員權限和清單不會幫助你。

3

添加清單文件,您只能聲明該應用程序需要UAC permisison。這樣用戶將在應用程序啓動時被提示輸入UAC。

如果這是你想要的here你可以找到描述如何做到這一點。

其他違規行爲是安裝一個服務,該服務使用LocalSystem帳戶運行,並且可以在不詢問UAC權限的情況下執行(幾乎)任何操作。爲此,您必須實現UI應用程序和服務之間的進程間通信。進程之間共享的內核對象必須通過具有適當安全屬性的服務來創建,以便從未升級的程序訪問。 服務的安裝將用於UAC用戶(大多數其他設備)

0

在HKLM \ SOFTWARE設置EnableLUA DWORD值\微軟\ Windows提示\ CurrentVersion \政策\系統爲0並重新啓動。

這將禁用UAC沒有問題,我會這樣做給所有的用戶,有或沒有權限取決於你,因爲Vista UAC是如此可怕,以至於我相信更少的人擁有它更好(僅在Vista中)現在在win7中更好。

樂趣與我的註冊表招:)

作品在Win7爲好,讓我知道你如何與它一起了。

事實證明,stackoverflow是審查意見,顯示如何禁用UAC作爲我的帖子/線程與上面的答案從勤奮的回答者被刪除。

0

你提到你試圖表現這個可執行文件作爲

  • UAC執行等級:highestAvailable

應設置爲requireAdministrator

不同的是,highestAvailable只會提升,如果用戶真的是一個管理員誰(UAC)剝奪了他們的管理privelages。如果他們真的是一個標準用戶,那麼它不會提升。

另一方面requireAdministrator要求他們提高。如果用戶不是管理員,他們將被提示輸入管理員的人的用戶名和密碼;他們必須打電話給某人下來並輸入他們的用戶名和密碼。

如果用戶已經是管理員,那麼requireAdministrator只會要求他們去繼續

相關問題