我们有一个 VB6 项目,它编译成一个 ActiveX EXE,文件名中恰好有“补丁”这个词(它是警察调度系统的一部分),这导致 Installer Detection在 Windows 7 上认为它需要提升。
我不想重命名 EXE,而是将 list 资源嵌入到将请求 asInvoker
的已编译 EXE 中。特权级别。通过阅读,我知道在使用 mt
编译 EXE 后我可以做到这一点。 Windows SDK 中的工具,但我更愿意将 list 放在 .RES 文件中,以便在我构建项目时将其编译到程序中。
有没有办法使用资源编辑器加载项将 list 资源(资源类型 24)添加到 VB6 项目?我将 list 文件添加为自定义资源,并为资源类型尝试了几个不同的值,例如“RT_MANIFEST”和“24”,然后使用 mt
测试它是否正常工作。重新提取 list ,但我无法让它工作。
备注 :正如在我访问的几页中提到的,我确实记得将 list 设为 4 字节的偶数倍,所以我认为这不是问题所在。
最佳答案
起初,我想我会尝试使用 rc
创建一个 .RES
我可以添加到我的项目中的文件。我没用过 rc
之前,所以我结束了这个 MSDN page在试图弄清楚的同时。
有趣的是这个对 typeNameId
的描述。在该页面上(强调):
Type name or identifier for the resource. Specify a string name or a number. If using a number, prepend the string with a "#" to indicate that it represents a number. Each resourceType element must have only one typeNameId attribute.
我心想:“嗯,这很有趣,可能不适用于 VB6 的资源编辑器,但无论如何我都会尝试一下。”
瞧,如果您将 list 文件添加为自定义资源,然后将其类型更改为
#24
(即使用 #
前缀),它有效!它被正确嵌入为已编译的 EXE 中的 list 资源。以下是详细步骤:
1) 创建 list 文件。我使用了这个(请注意,在我的情况下,末尾的填充使文件正好为 608 字节):
<安全>
<请求的权限>
安全>
组装>
2) 通过从工具菜单中选择资源编辑器,在 VB6 IDE 中打开资源编辑器(您可能必须首先在加载项 > 加载项管理器中启用它)。
3) 如有必要,创建一个新的资源文件。
4) 添加新的自定义资源(单击“?”图标左侧的按钮)。
5) 出现文件选择对话框:选择在步骤 1 中创建的 list 文件。
6)资源会默认添加到ID为101的“CUSTOM”文件夹下。
7) 双击新资源。将“类型”更改为
#24
并将“Id”设置为 1。8) 保存更改并关闭资源编辑器。
关于vb6 - 是否可以使用资源编辑器将 list 资源添加到 VB6 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3166943/