【发布时间】:2010-03-12 11:24:26
【问题描述】:
如何部署应用程序以使它们需要管理员权限,而无需最终用户手动执行?
我使用 Delphi 2009 构建应用程序。
【问题讨论】:
-
你用什么来部署你的程序? (这非常重要,因为您可能需要安装程序来生成设置了“以管理员身份运行”标志的快捷方式。)
标签: windows delphi deployment uac
如何部署应用程序以使它们需要管理员权限,而无需最终用户手动执行?
我使用 Delphi 2009 构建应用程序。
【问题讨论】:
标签: windows delphi deployment uac
您可以使用应用程序清单中的 requestedExecutionLevel 元素通知 Windows 您的应用程序需要以管理员身份运行。
清单文件是一个 XML 文件,如下所示。它应该被命名为 YourApp.exe.manifest 并放置在与可执行文件相同的文件夹中。 (它也可以嵌入到应用程序的资源中;它的资源类型必须为 RT_MANIFEST,ID 为 1。)
<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>
有关应用程序清单以及如何创建它们的更多详细信息,请参阅 MSDN 上的Create and Embed an Application Manifest (UAC)。
请注意,清单仅适用于 Windows Vista 及更高版本。如果您的用户在 Windows XP 上以标准用户身份运行,您的应用程序将不会以管理员身份启动;如果这对您的应用程序来说是个问题,您可能需要编写代码来检测它。
【讨论】:
另一种选择,虽然不推荐用于“日常应用程序”,但使用“安装”或“设置”作为名称的一部分来命名您的可执行文件。请记住,如果您不更改任何注册表设置或创建任何新文件,则 Windows 将向用户显示程序可能无法正常运行的警告。
【讨论】: