我们的应用程序有一个安装程序,必须像许多其他安装程序一样以管理员权限下载和运行。但是,安装程序未命名为“setup.exe”,因此 Windows 不会自动检测到它需要提升才能运行。
坦率地说,更改安装程序名称以使事情正确提升听起来相当混乱。本文 http://msdn.microsoft.com/en-gb/magazine/cc163486.aspx谈论了很多关于UAC和提升的内容,它说你可以使用清单来使某些东西需要授权。
因此,我们只想为我们的安装程序创建一个清单。但是,我们如何确保清单存在?如果用户只是下载 our_application_v13.exe,我们如何确保他们也获得清单? AFAIK 在这种情况下,清单必须是一个名为“our_application_v13.exe.manifest”的文件。
由于他们只是从我们的网站下载文件,我们如何确保他们也获得清单?我们可以以某种方式将其构建到可执行文件中,或者以其他方式将可执行文件标记为需要提升吗?我们使用的是数百年前的安装程序工具,我们无法更改,因此它没有任何与此相关的功能。
Thanks!
如果安装程序工具允许您更改/附加/编辑生成的 EXE 文件的资源,则可以将清单文件添加为资源类型为 24(Windows 标头中的 RT_MANIFEST)和资源 ID 为 1 的资源。
如果安装程序工具没有插入资源的内置工具,那么您可能需要编写一个工具来后处理 install.exe 文件以插入资源。查找 Windows API开始更新资源 http://msdn.microsoft.com/en-us/library/ms648030(VS.85).aspx和结束更新资源。它们有一些限制 - 如果 EXE 根本不包含任何资源文件,它们往往无法工作,但大多数安装工具生成的 exe 文件至少包含版本信息资源。
此外,如果安装经过数字签名,则必须在插入清单资源后完成。
Also, mt.exe http://msdn.microsoft.com/en-us/library/windows/desktop/aa375649(v=vs.85).aspx包含在 Platform SDK 中,大多数版本的 Visual Studio 都具有嵌入、提取和合并清单资源的选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)