我们有一个安装于我们应用程序,必须下载和运行具有管理员权限的,像许多其他的安装。然而,安装不是名为"setup.exe",使Windows不会自动检测它,因为需要提升运行。

改变安装名字要做的事情提升正常听起来很凌乱,坦率地说。 这篇文章 谈了很多有关UAC和提升,并说,你可以使用一个清单做出一些需要授权。

因此,我们只是爱上创建一个清单,为我们安装。然而,我们如何确保清单是本?如果用户只是下载的our_application_v13.exe我们怎么保证他们得到的清单吗?据我所知的清单将是一个文件命名为"our_application_v13.exe。清单"在这种情况。

因为他们只是下载一个文件,从我们的网站,我们如何确保他们得到的清单吗?我们可以建设成为可执行的,在某种程度上,或无标志的可执行作为需要提升?我们正在使用一个安装工具,从数百年前,我们不能改变,因此它不具有任何能力有关。

谢谢!

有帮助吗?

解决方案

如果安装程序工具允许您更改/附加/编辑生成的EXE文件的资源,则可以将清单文件添加为资源类型为24的资源(Windows标头中为RT_MANIFEST),资源ID为1。

如果安装程序工具没有内置工具来插入资源,那么您可能必须编写一个工具来对您的install.exe文件进行后处理以插入资源。查找Windows API BeginUpdateResouce 和EndUpdateResource。它们有一些限制 - 如果EXE根本不包含任何资源文件,它们往往不起作用,但大多数安装工具生成的exe文件至少包含版本信息资源。

此外,如果安装是数字签名,则必须在插入清单资源后进行。


另外, mt。平台SDK附带的exe 和大多数版本的visual studio都有嵌入,提取和合并清单资源的选项。

其他提示

清单也可以在应用程序的本机资源部分(在EXE内)。

那里是 资源调谐器控制台 从Heaventools软件。

资源调谐器控制台是一个命令行的工具,使开发者能够自动化处理后的执行文件安装和插入清单的资源。具体见的 增加的应用程序清单 页面更详细信息:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top