有人会为Delphi 7提供清单文件示例,该文件允许应用程序在Windows XP / Vista / 7上以管理员身份运行吗?
运行具有此功能的应用程序通常会导致出现一个User Account Control (UAC)对话框,询问特权权限。
最佳答案
步骤如下:
1.删除XPMan
:在项目中删除对XPMan
组件的任何引用。 XPMan
向可执行文件中添加默认清单,以防止Windows查看我们的自定义清单。您不必担心XPMan
提供的XP主题,主题支持保留在以下清单中。
2.创建自定义的清单:在项目目录中创建一个类似于Win7UAC.manifest
的文件(文件名确实无关紧要)。将以下行添加到Win7UAC.manifest
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="App" version="3.1.0.0" processorArchitecture="*"/>
<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.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
您可以向此清单添加更多项目。您也可以删除
Microsoft.Windows.Common-Controls
部分以禁用主题支持。3.将清单编译为资源:在项目目录中创建一个名为
Win7UAC.rc
的文件,该文件包含以下一行:1 24 "Win7UAC.manifest"
要编译此文件,请转到cmd,指向项目目录并运行以下命令:
brcc32.exe Win7UAC.rc
4.向项目添加资源(清单):只需在项目的一个单元文件中的任何位置添加以下行:
{$R 'Win7UAC.res'}
添加此行的合适位置是在项目主文件(通常命名为
Project1.dpr
)中且在{$R *.res}
行下。5.重建项目
6.请记住,每当您将XPMan组件添加到任何项目单元时,此UAC清单将无法正常工作。
关于delphi - Delphi 7 Vista/Windows 7 list ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4757533/