2011-06-03 76 views
17

<requestedPrivileges>清單信息添加到Delphi XE項目(.exe)最簡單的方法是什麼?如何將清單<requestedPrivileges>信息添加到delphi項目

是否有可能加入就像需要的節點:

<requestedPrivileges> 
    <requestedExecutionLevel level="requireAdministrator"/> 
</requestedPrivileges> 

還是我來補充整個清單文件,怎麼樣?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="VistaLogonCustomizer.exe" type="*"/> 
    <description>elevate execution level</description> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
    <requestedPrivileges> 
     <requestedExecutionLevel level="requireAdministrator"/> 
    </requestedPrivileges> 
    </security> 
    </trustInfo> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> 
    </dependentAssembly> 
    </dependency> 
</assembly> 

如果非要加上整個清單文件,我必須再與manfest文件生成(當項目選項「激活運行系統主題」設置爲true,這是生成的)衝突?

+2

你必須添加整個清單,你必須禁用「激活運行時主題」。您可以使用資源編譯器進行編譯,也可以包含單獨的.manifest文件。 – 2011-06-03 13:24:33

回答

15

這裏有一些鏈接

Delphi and Windows Vista User Account Control

Vista UAC Manifest

具體操作步驟如下:

Create XML file with following content: 

<?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="X86" 
    name="YourApplicationExeName" 
    type="win32"/> 
    <description>elevate execution level</description> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
    <requestedPrivileges> 
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> 
    </requestedPrivileges> 
    </security> 
    </trustInfo> 
</assembly> 

名稱此XML文件爲Y

1 24 "YourApplicationName.manifest" 

名稱使用 命令行執行以下命令該文本文件YourApplicationName.RC:

brcc32 YourApplicationName ourApplicationName.manifest

與以下 內容創建一個文本文件.RC ​​-foYourApplicationName.REC

This will cre吃了一個名爲YourApplicationName.REC的新資源文件將這個YourApplicationName.REC文件拷貝到 應用程序的資源路徑中。包括這個資源文件到您的應用程序的DPR,

像:

{$ R YourApplicationName.REC}最後構建應用程序 - 現在已準備好獲得管理權限

+2

今天我感覺很密集。你能解釋一下這些鏈接如何回答這個問題嗎?總結其中的內容,或指出這些文章的哪些部分對於當前任務最重要。 – 2011-06-03 21:22:48

+8

沒有必要(也不應該有任何開發環境需要您)放入命令提示符或運行單獨的命令。只需將您的資源腳本添加到項目中(**項目** - > **添加到項目** - >'wumpa.rc' - > **打開**)。 Delphi現在將編譯資源腳本。還要注意,資源腳本文件可以被調用,無論你想要什麼。我們總是把它稱爲'wumpa.rc',就像在* Hunt the wumpa *中一樣 - 引用大量的工作來發現Delphi(與Visual Studio不同)可以編譯資源腳本。 – 2011-11-15 19:16:28

+0

是否需要清單文件必須被稱爲 .manifest或者 .manifest是否也可以工作? – dummzeuch 2013-02-20 10:52:57

12

您應該添加整個清單。您需要在項目中禁用IDE生成的版本。

這樣做的好處是您可以對清單進行完全透明的控制。例如,您可能需要添加一個DPI識別條目,以便您的應用在較高的字體縮放值上看起來不錯。

相關問題