回答
通過在應用程序清單中使用requestedExecutionLevel
元素,您可以通知Windows,您的應用程序需要以管理員身份運行。
清單文件是一個如下所示的XML文件。它應該被命名爲YourApp.exe.manifest並放置在與可執行文件相同的文件夾中。 (也可以嵌入到應用程序的資源,它必須有一個RT_MANIFEST
資源類型和1的ID)
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="YourApp" type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
有關應用程序清單的詳細信息,以及如何創建它們,請參閱Create and Embed an Application Manifest (UAC)在MSDN。
請注意,清單僅在Windows Vista及更高版本中受到尊重。如果您的用戶在Windows XP上以標準用戶身份運行,則您的應用程序將不會以管理員身份啓動;您可能需要編寫代碼來檢測這是否會對您的應用程序造成問題。
我試過你的solutino在delphi xe2上使用新的VCL Forms應用程序,用上面的內容創建一個txt文件從<程序集到/程序集>,嵌入在資源強制ID = 1和RT_MANIFEST廣告類型,我編譯,但後來當我運行它沒有任何反應,我應該期望Windows迫使我作爲管理員運行? – LaBracca 2013-07-02 07:05:47
@ user193655:你是否已關閉UAC?如果是這樣,那麼Windows不會提示你升級。否則,你描述的步驟聽起來是正確的。作爲一個新問題發佈完整的細節可能會更好;可能有一些微妙的Delphi特定問題(我不知道),其他Delphi用戶可以爲您解答。 – 2013-07-02 13:48:06
@BradleyGrainger:來自UAC的地方? – 2017-09-06 07:17:12
另一個選項雖然不推薦用於「每天的應用程序」,但是可以使用「Install」或「Setup」作爲名稱的一部分爲您的可執行文件命名。請記住,如果您不更改任何註冊表設置或創建任何新文件,則Windows會向用戶顯示該程序可能未正常運行的警告。
- 1. 如何強制WPF應用程序以管理員模式運行
- 2. 以管理員身份運行程序
- 3. VB6應用程序'以管理員身份運行'問題
- 4. 以管理員身份運行的dotnet核心應用程序
- 5. 以管理員身份運行Javafx應用程序
- 6. 在Windows上以管理員身份運行Java應用程序
- 7. 如何使安裝程序以管理員身份運行
- 8. 如何在Qt中以管理員身份運行應用程序
- 9. 如何使控制檯應用程序始終以管理員身份運行?
- 10. 如何強制某個應用程序不能以管理員身份運行
- 11. 如何創建服務以管理員模式運行應用程序,或者如何配置應用程序以始終使用批處理腳本的管理員模式運行?
- 12. 只有以管理員身份運行應用程序才能運行?
- 13. WiX安裝程序應始終以管理員身份運行
- 14. vb.net應用程序安裝程序(msi)以管理員身份運行
- 15. 以管理員模式運行.bat批處理文件
- 16. 如何以管理員模式執行批處理文件
- 17. 如何從命令提示符下以「以管理員身份運行」運行應用程序?
- 18. 如果以管理員身份運行應用程序更改的ShortdateFormat
- 19. NSIS:安裝應用程序以始終以管理員身份運行
- 20. 如何在C#Winforms應用程序上使用模擬以使用管理員權限運行?
- 21. 管理員模式下的Windows窗體應用程序
- 22. 我們爲什麼要以管理員模式運行visual studio ...?
- 23. 以管理員身份運行使用Windows Desktop Bridge轉換的應用程序?
- 24. 授予管理員權限以執行應用程序
- 25. 如何在Windows 7下以管理員身份運行命令行程序?
- 26. 如何運行IIS 7應用程序池作爲內置管理員?
- 27. 以管理員帳戶運行應用程序不允許創建文件夾
- 28. 在Vista/Windows 7中以管理員身份運行.net應用程序
- 29. 什麼時候應用程序絕對需要以管理員身份運行?
- 30. 以管理員身份運行SSMS 2012應用程序無法啓動錯誤
你用什麼來部署你的程序? (這是非常相關的,因爲你可能需要你的安裝程序生成具有「以管理員身份運行」標誌設置的快捷方式。) – 2010-03-12 14:35:32