起初,我想我会尝试使用rc
创建一个.RES
文件,我可以将其添加到我的项目中。我之前从未使用过rc
,所以我在试图弄清楚的时候最终得到了这个MSDN page。
什么是有趣的是这样描述的typeNameId
该网页上(强调):
键入名称或标识的 资源。指定一个字符串名称或一个 数字。 如果使用数字,请在 字符串前面加上“#”,表示它 代表的数字为。每个资源类型 元素必须只有一个typeNameId 属性。
我心想:“好吧,这很有趣,可能不适用于VB6的资源编辑器,但我会尝试它。”
如果您将清单文件添加为自定义资源,然后将其类型更改为#24
(即使用前缀#
),那么它可以工作!它被正确地嵌入到已编译的EXE中作为清单资源。
以下是详细步骤:
1)创建一个清单文件。我用这一个(请注意,在端部的填充取得的文件中的我的情况下精确地608字节):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="DispatchMonitor" type="win32"/>
<description>DispatchMonitor RunAsInvoker fix</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
<!-- Padding to make filesize even multiple of 4 -->
2)通过从选择资源编辑器打开资源编辑器在VB6 IDE 工具菜单(您可能必须先启用它,才能在加载项>加载项管理器)。
3)如果需要,创建一个新的资源文件。
4)添加一个新的自定义资源(点击“?”图标左侧的按钮)。
5)出现一个文件选择对话框中:选择)在步骤1中
6中创建的清单文件的资源将一个“自定义”文件夹下加入由默认的101 ID。
7)双击新资源。将“类型”更改为#24
,将“Id”更改为1.
8)保存更改并关闭资源编辑器。
有趣的问题。我们在Vista上遇到过几个exes问题,并通过重命名exes或更改项目设置中的某些属性来解决此问题。 – MarkJ 2010-07-02 16:39:07
重命名是最简单的解决方案,但我不想更改安装程序以删除旧文件并添加新重命名的文件,因为我们有许多不同的安装程序来安装该特定文件。此外,嵌入它会更好,因此Windows 7上的开发人员无需执行任何操作即可使其在机器上工作。另外知道如何添加任何类型的资源可能对其他事情有用,所以我想我会试着弄清楚如何通过一个清单资源做到这一点。很高兴知道这确实很容易做到。 – 2010-07-02 16:48:11