vb6 - 是否可以使用资源编辑器将 list 资源添加到 VB6 项目?

标签 vb6 windows-7 uac manifest

我们有一个 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 字节):




DispatchMonitor RunAsInvoker 修复

<安全>
<请求的权限>







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/

相关文章:

vb6 - 有没有办法测试 Function/Sub 在 VB6 中是否可用?

c# - 从Windows中的立体声混音中获取声音样本

c# - 我如何请求提升注册管理机构对 HKLM 的访问权限?

delphi - 从 Delphi 应用程序发送 WM_COPY。到 Windows 7 中的另一个进程

VB6 将文本框输入限制为从 1900 年到当前日期范围内的数字?

dynamic - 在运行时向窗体上的每个控件添加事件处理程序 VB6

c# - 延迟关机和锁屏

c# - 如何确定网络接口(interface)是否连接到互联网(即计算机在线)

c# 从 UAC 管理员级别进程降低权限启动进程

vb6 - 有没有办法防止 VB6 编译器打乱文件的内容?