【发布时间】:2010-07-02 15:10:25
【问题描述】:
我们有一个 VB6 项目,它编译成一个 ActiveX EXE,它的文件名中恰好有“patch”一词(它是警察调度系统的一部分),这导致 Windows 7 上的Installer Detection 认为它需要海拔。
我不想重命名 EXE,而是想将清单资源嵌入到已编译的 EXE 中,该资源将请求 asInvoker 权限级别。从阅读中,我知道我可以在使用 Windows SDK 中的mt 工具编译 EXE 后执行此操作,但我更愿意将清单放在 .RES 文件中,以便在我构建时将其编译到程序中项目。
有没有办法使用资源编辑器插件将清单资源(资源类型 24)添加到 VB6 项目?我将清单文件添加为自定义资源,并为资源类型尝试了几个不同的值,例如“RT_MANIFEST”和“24”,然后通过使用mt 重新提取清单来测试它是否工作,但是我无法让它工作。
注意:正如我访问的几页中提到的,我确实记得将清单设置为 4 字节的偶数倍,所以我认为这不是问题。
【问题讨论】:
-
有趣的问题。我们在 Vista 上的几个 exe 中遇到了这个问题,并通过重命名 exe 或更改项目设置中的某些属性来解决它。
-
重命名是最简单的解决方案,但我不想更改安装程序以删除旧文件并添加新重命名的文件,因为我们有许多不同的安装程序来安装该特定文件.此外,将它嵌入会更好,这样 Windows 7 上的开发人员就不必做任何事情来让它在他们的机器上运行。加上知道如何添加任何类型的资源可能对其他事情有用,所以我想我会尝试弄清楚如何通过清单资源来做到这一点。很高兴知道这实际上很容易做到。
标签: vb6 windows-7 uac manifest