ThN*_*ThN 0 windows delphi administrator manifest access-denied
我正在使用Delphi XE for Windows 10开发软件,我必须以10的管理员权限运行我的软件.如果我右键单击exe文件并以管理员身份运行它,它不会引发任何错误,但如果我运行它以任何其他方式程序引发错误消息Access Denied.所以,它需要有管理员身份.最初我认为你可以使用任务调度程序来完成这个任务,但它也有问题.现在,我正在学习我需要自定义清单才能在Windows 10上执行此操作.因此,在浏览了一些stackoveflow问题,博客和网站后,我为我的程序创建了一个清单,如下所示,但是当我运行我的程序时它仍然会引发Access Denied错误信息.
这就是我做的:
使用NOTEPAD创建清单文件(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>
Run Code Online (Sandbox Code Playgroud)
使用NOTEPAD创建RC文件GeoMonitor.rc
1 24 GeoMonitor.manifest
Run Code Online (Sandbox Code Playgroud)
在取消选中Enable Run Time Theme项目选项中的选项后,将这两个文件链接到我的项目文件.

最后,我没有问题地编译了我的项目文件,然后在Windows 10上测试了编译的exe文件.它仍然作为用户而不是管理员运行.我究竟做错了什么?
更新: 我的项目选项 - 资源编译器部分有什么我需要设置的吗?

我认为你有两个问题:
这是您需要的最低清单:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Run Code Online (Sandbox Code Playgroud)
很明显,你会想要添加更多内容,但从这里开始,使用已知良好的清单文件.证明它按预期工作.然后添加更多功能.
最后要说的是,我怀疑你一直习惯于禁用UAC.这是一个非常糟糕的主意,对开发人员来说更是如此.如果您在过去10年中使用UAC,那么您很久以前就会遇到所有UAC /标准用户问题.