时间:2021-05-02
在用VB编程中使用第三方控件,必须使程序能够在系统目录或程序目录下找到所用的第三方控件。通常有两种办法:一是把控件和程序制成一个压缩包发行,这样的缺点是有可能导致在程序传播过程中丢失控件文件。二是制作安装程序,缺点是制作过程烦琐。本文讲述了将第三方控件以自定义资源文件方式保存在程序中,程序运行之后使用控件之前将所用到的控件生成到该程序目录下,完成控件从可执行文件中的金蝉脱壳。
具体做法如下:
第一步:将要用到的控件拷贝到当前工程目录下,右键单击该控件,选择属性,记下文件大小。注意,应记下以字节为单位的具体数字,而不是多少K,以备编程使用。
第二步:引用并正常使用该控件。
第三步:新建资源文件加入工程,在资源文件编辑器中添加所使用的第三方控件为自定义资源(CUSTOM),资源号使用默认的101。如果使用了多个控件则分别添加到资源文件的101、102......资源项中,脱壳代码也要作相应的修改。
第四步:编写控件脱壳代码,使其读取资源文件的数据,在程序当前目录下生成控件。
代码如下:
Private Const OCXSIZE = 57344 '欲生成的控件大小是57344Byte,名字为CoolToolBar.ocx
Sub Main() Dim Ocx() As Byte 'OCX是个Btye类型的数组 Dim Counter As Long Ocx = LoadResData(101, "CUSTOM") '将自定义资源中101号资源读入数组OCX
'注意,微软的帮助中对加载自定义资源的说明有错误,自定义资源标识为"CUSTOM"而不是帮助所说的数字10
If Right(App.Path, 1) = "($%$43%^#ASD#2@$#f$%^) Then '读取程序所在路径,判断是否为根目录并分别处理 '程序在根目录下 If Dir(App.Path & "CoolToolBar.ocx") = "" Then '程序路径下有无控件,无则生成控件 '以二进制方式写(生成)控件(CoolToolBar.ocx)到主程序所在的目录 Open App.Path & "CoolToolBar.ocx" For Binary As #1 For Counter = 0 To OCXSIZE - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值 Put #1, , Ocx(Counter) Next Counter Close #1 End if Else '程序不在根目录下 If Dir(App.Path & "\CoolToolBar.ocx") = "" Then '程序路径下有无控件,无则生成控件 '以二进制方式写(生成)控件(CoolToolBar.ocx)到主程序所在的目录 Open App.Path & "\CoolToolBar.ocx" For Binary As #1 For Counter = 0 To OCXSIZE - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值 Put #1, , Ocx(Counter) Next Counter Close #1 End if End if Form1.Visible = True '主程序所用控件已经生成,显示主窗体,进入主程序。End Sub
注意:将以上代码作为一个模块添加到工程中,并在工程-工程属性设置中将启动对象选为Sub Main,即上面的脱壳代码。然后编译生成EXE文件,将该EXE文件拷贝到其他没有安装所用控件的计算机上运行一下看看是否实现了控件携带之金蝉脱壳。
本文源自:翔宇亭——IT乐园(http://),转载请保留此信息!声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例主要实现了VB调用外部exe程序来运行的功能,这里主要是使用shell函数来执行,shell函数主要用来打开一个外部的exe可执行文件,例如,在sub模
在WindowsXP系统中,不同的文件会以不同的图标显示。从打开方式看,文件分为可执行文件和不可执行文件两种类型。>可执行文件:指可以自己运行的文件,又称可执行
可执行文件是指可移植可执行的文件,用于程序的执行,那么Linux下要如何查找可执行文件呢?下面小编就给大家介绍下Linux中查找可执行文件的方法,一起来了解
一些xp老用户可能知道,xp系统可以直接注册ocx文件的,但是在将xp升级到win10后,发现无法直接注册ocx文件了。那么win10系统如何注册ocx文件?针
CAGlobal.exe是Windows操作系统中的一个可执行文件(程序)。文件的扩展名是.exe的表示是可执行.请务必运行那些您信任的可执行文件,因为可执行文