时间: 2021-07-31 作者:daque
这篇作品要计划的是在一个vb步调中怎样爆发出另一个exe文献。要实行这个手段,必需适合以次几个前提: 第一、编写如许的步调时,完备欲天生的exe文献 第二、事前领会欲天生的exe文献巨细 本来这两个前提不妨说不是前提,但真实很要害。为了叙述简单,将刊行的步调称作app-1.exe,要天生的文献叫app-2.exe,以次是简直办法: 第一步,筹备好app-2.exe,这边我运用vb写了一个什么都不做步调,编写翻译成app-2.exe。 第二步,右键单击单击app-2.exe,采用属性,记下文献巨细。提防,应记下以字节为单元的简直数字,而不是几何k。 如许就完备了前边说的两个前提。 第三步,兴建工程app1,兴建资源文献介入工程,在资源文献编纂器中增添自设置资源(custom),资源号运用默许的101。犯得着提防的是,每个资源号对应的资源项对资源巨细的诉求是有控制的,我牢记时64k,所以即使app-2.exe的巨细即使大于这个数的话,就要烦恼少许。即使是如许,咱们的写另一个步调,把app-2.exe一个字节一个字节的读出来,每64k天生一个文献,而后再把那些文献辨别写道资源文献的101、102......资源项中,代码也要作相映的窜改。 第四步,为app-1.exe编写代码,使其读取资源文献的数据,天生app-1.exe。 代码如次: private const filesizeofapp2 = 20480 '我天生的app-2.exe巨细是20480byte private sub cmdok_click() '单击按钮cmdok运转代码 dim app2() as byte 'app2是个btye典型和数组 dim counter as long app2 = loadresdata(101, "custom") '将自设置资源中101号资源读入数组 '提防,微软的扶助中对加载设置资源的证明有误,硬是资源标识为"custom"而非数字 if dir(app.path & "app-2.exe") <> "" then '第一次按cmdok灵验 msgbox app.path & "app-2.exe 仍旧生存!" exit sub end if open app.path & "app-2.exe" for binary as #1 '以二进制办法写(天生)app-2.exe到app-1.exe地方的目次 for counter = 0 to filesizeofapp2 - 1 '提防由于从0 byte发端所以以文献巨细 - 1byte 为终 put #1, , app2(counter) next counter close #1 shell app.path & "app-2.exe", vbnormalfocus 解释:运转刚天生的app-2.exe unload me end sub