VB从程序中生成Exe文件
这篇文章要讨论的是在一个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
相关文章参考:
☆VB直接播放EXE文件中的声音文件
☆VB 感染EXE 程序病毒源码
更多精彩>>>
VB从程序中生成Exe文件相关推荐
- 在.net core 2.0中生成exe文件
.net core 2.0程序默认生成的是一个dll,需要通过dotnet命令来执行他. dotnet ConsoleApp1.dll 这种方式有点类似于java程序.本身这种方式没有什么问题,但在调 ...
- django可以生成exe文件吗_把 Django 程序打包为 exe 可执行文件
功能背景 我把自动化校准程序写好后,可以在 Pycharm 中运行 Django 程序.但是,这个程序最终要给检定员用的,我不可能在每个检定员的电脑上安装 Django 编程环境让他们使用.所以,要把 ...
- Python生成.exe文件亲测实践教程(初级+进阶,含资源文件程序的打包)
使用打包工具PyInstaller的基础操作: 此部分包括安装模块+模块的常见指令的使用 具体流程可以参考以下两篇文章非常详细 (9条消息) Python如何生成可执行的.exe文件_zhaochon ...
- 使用VB生成.exe文件在其他电脑运行
咳咳,我是小白一个,写博客作为学习记录,加深印象,可能写的不对,或者有些地方写的不全,欢迎在下评论哈,我会及时更正 传送门:博客汇总帖 正文开始 生成EXE文件 注意 如果没有使用ActiveX控件, ...
- vs2010如何生成EXE文件如何更改EXE程序图标
vs2010如何生成EXE文件 F5启动调试后,进入下面路径查找: 我的文档\Visual Studio 2010\Projects\项目名称\项目名称\bin\Debug 如何更改EXE程序图标 其 ...
- VS2019项目打包生成.exe文件与Setup的步骤实现
对于Visual Studio Installer ,我们通常称为:setup项目,是一个用于自定义安装部署的项目方案.但是在VS2019中不见了,微软是有意废除安装项目的,合作了一个第三方的安装项目 ...
- pyinstaller生成exe文件失败
我的python是3.6,目前pyinstaller并不支持,有网友建议在Github上下载源码,用pyinstaller_develop文件夹替换pyinstaller安装位置下同名文件夹.这样做之 ...
- 如何把一个java程序打包成exe文件,运行在没有java虚
如何把一个java程序打包成exe文件,运行在没有java虚 核心提示:首先,将编译好的程序打包成jar文件,然后做出exe,这样代码就不可见了:但是exe文件在没有安装jre的电脑上不能运行,如果要 ...
- 在VB应用程序中调用Excel2000
Visual Basic简称(VB)是设计Windows应用程序强有力的开发工具,"全球绝大多数Windows应用程序都是用VB开发的": Excel是目前使用最广泛的办公应用软件 ...
最新文章
- “5W1H”带你来学习JavaScript
- auot lisp 选择集处理_离散量的计算机处理64_1Cvs
- 销货清单数据_2020年8月数据科学阅读清单
- 【BZOJ】【1086】 【SCOI2005】王室联邦
- go get如何删除_Go语言HTTP请求(req库)
- android中edittext监听文字变化,使用TextWatcher监听EditText变化
- java hexbin_bin文件转换为hex文件操作步骤解析 - 全文
- css 实现一个尖角_纯CSS实现页面的尖角、小三角、不同方向尖角的方法小结
- X11-forwarding
- word点击退出时未保存怎么办?
- 氛围感新年头像如何制作?教你简单的制作好看头像的办法
- Web网站中利用JavaScript中ActiveXObject对象获取硬件信息(显示器数量、分辨率)从而进行单双屏跳转...
- django.db.utils.OperationalError: (2003, Can't connect to MySQL server on ‘127.0.0.1’)
- 人工智能:智慧环保(上海AI智慧环保,绿色新时代)
- win10 软件安装出现错误代码 2502/2503
- Wish如何收款?Wish卖家绑定连连跨境支付收款教程!
- vuex4.x+ts的简单用法
- NOIP2018·赛道修建
- python 找到装饰器_[译] 12步轻松搞定python装饰器
- Python学习之:如何根据经纬度来实现地图的可视化(将这些点在地图上标注出来)
热门文章
- Android 开发者们,如何使用 Python 来扩展 adb 命令?
- 微软全球AI负责人沈向洋博士:下一个智能终端的风口 | IoT in Action
- 支付宝年度账单被怼;英特尔CPU曝惊天漏洞;甘薇为贾跃亭喊冤 | 一周业界事
- Thread-start()-,它是怎么让线程启动的呢,Java面试问项目
- Java宝典app下载
- oracle转mysql总结,原理+实战+视频+源码
- inotify+rsync实时双向同步文件
- kill -9 和 kill -15 的区别
- ctk介绍、安装、使用详细说明pdf文档(中文).rar_Minio 安装和使用详解,还有对.net api进行了二次封装...
- 双步位移求解特征值matlab,数值分析——带双步位移的QR分解求特征值算法