gpt4 book ai didi

windows - 如何修改一个exe文件以强制它在没有源代码的情况下以管理员身份启动

转载 作者:可可西里 更新时间:2023-11-01 14:51:48 26 4
gpt4 key购买 nike

我前段时间开发了一个视频游戏,当时 WinXP 是当前的 Windows 版本。游戏需要将自己的字体安装到系统中(如果尚未存在)。我不记得我在代码中是如何做到这一点的,我想我要么使用了特定的 WinAPI 函数,要么我只是将字体文件复制到 Fonts 文件夹中——无论哪种方式,当时都可以正常工作。

但是现在在Win7上运行游戏时,除非用户以管理员身份运行,否则游戏无法安装字体。游戏运行正常,但使用了一种可怕的默认字体,因此用户甚至没有意识到出了什么问题,只是认为游戏看起来很糟糕。

所以我需要的是让exe文件总是要求以管理员身份运行。我可以重新编译游戏并设置构建,以便 exe 文件始终需要管理员权限,但我没有一些我已经使用过的 SDK,因此重建可能会有些困难。

所以我想做的是:我可以简单地以某种方式修改 .exe 文件,而不需要源代码,以便它始终要求以管理员身份运行吗?

我发现我需要将其放入 list 中:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

但是我可以编辑 exe 文件的 list 吗?我已尝试使用 XN 资源编辑器来处理资源,但它似乎无法编辑 list 。

这有可能吗?

谢谢。

最佳答案

您可以将 list 创建为外部 XML 文件,并将其放在与可执行文件相同的文件夹中。将其命名为 YourAppName.exe.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="YourApplication"
version="1.0.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>
</assembly>

关于windows - 如何修改一个exe文件以强制它在没有源代码的情况下以管理员身份启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11636742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com