我正在Delphi 10上開發用於Windows 10的軟件,我必須在10上運行我的軟件並具有管理員權限。如果我右鍵單擊exe文件並以管理員身份運行它,它不會引發任何錯誤,但如果我運行它以任何其他方式程序引發錯誤消息Access Denied
。所以,它需要具有管理員身份。最初我以爲你可以使用任務調度程序來完成這個任務,但它也有問題。現在,我正在學習我需要在Windows 10上進行自定義清單。因此,在通過一些stackoveflow問題,博客和網站在線之後,我爲我的程序創建了一個清單,如下所示,但是,當我運行我的程序時,它會引發Access Denied
錯誤消息。如何使用Windows 10的清單設置管理員權限?
這是我做過什麼:
創建的清單文件(GeoMonitor.manifest)使用記事本:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestversion="1.0">
<assemblyIdentity version="1.1.1.1">
processorArchitecture="*"
name="GeoMonitor"
type="win32" />
<description>elevate execution level</description>
<dependency>
<dependentAssembly>
<assemblyIdentity>
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustinfo xmlns="urn:schemas-microsoft-com:asm.v2"><security>
<requestedPrivileges>
<requestedExecutionlevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustinfo>
</assembly>
創建RC文件GeoMonitor.rc使用記事本
1 24 GeoMonitor.manifest
在取消選中選項0後,將這兩個文件鏈接到我的項目文件項目選項中的。
最後,我遵守我的項目文件沒有問題,然後測試編譯過的EXE文件在Windows 10,它仍在運行作爲用戶不是管理員。我究竟做錯了什麼?
更新: 有什麼我必須在我的項目選項 - 資源編譯器部分設置?
你是如何「鏈接這兩個文件」?你看過[這個問題的第二個答案](http://stackoverflow.com/a/6227554/62576),包括評論? –
@KenWhite我實際上是通過右鍵單擊項目名稱並在彈出菜單中單擊添加選項將這些文件添加到我的程序項目文件中。另外,我注意到RC文件被鏈接到我的DPR文件,就像'{。$ R'GeoMonitor.res''GeoMonitor.rc'}''我在網上閱讀,你不需要分別編譯RC文件,Delphi編譯器會爲你做到這一點。 – ThN
隨着那裏的點('{。$ R}'),這是一個無所事事的聲明(實際上是一個評論)。爲了使它實際上成爲編譯器指令,您需要移除'.'以離開'{$ R'GeoMonitor.res''GeoMonitor.rc'}'。這將解釋爲什麼它不起作用 - 清單從未包含在內。 –