社区
VB基础类
帖子详情
vb怎样才能打包成绿色软件?
yiranoon
2003-09-18 11:03:19
有好的办法或工具吗?
...全文
169
10
打赏
收藏
vb怎样才能打包成绿色软件?
有好的办法或工具吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yiranoon
2003-09-29
打赏
举报
回复
1
UpdateING
2003-09-18
打赏
举报
回复
8好意思............lxcc大侠........占了个位置~~~~~~其实偶们的目标是一致滴~~~~~~就是帮助楼主~~~~~~!西西~!
liul17
2003-09-18
打赏
举报
回复
最绿的就是拷个 .exe 就能运行 :)
次之则是(自认为):
安装时全装上卸载时全卸掉不留痕迹!
lxcc
2003-09-18
打赏
举报
回复
呵呵,转的同一个帖子
yijiansong
2003-09-18
打赏
举报
回复
xuexi
lxcc
2003-09-18
打赏
举报
回复
现在非常流行“绿色”软件,不需要什么安装程序只要一个 EXE 文件就可以运行程序
了,而在 VB 的编程中有许多地方需要调用第三方的控件(很难用 API 函数搞定所有的功能),这就需要制做一个安装程序,把所需要的控件、DLL 文件或其他文件打包进去了,那么在 VB 中怎么用变通的方法实现“绿色”软件呢,请看:
示例:
1、主程序.EXE
用 VB6.0 编写的程序,调用了 Winsock 控件,如果在没有安装 VB5.0、6.0 的机器上运行则会出现错误,导致程序运行失败,这时如果按一般的方法,只有把这个程序用 VB5.0、6.0 的安装程序进行打包,不然只有用用2的方法来解决了。
2、注册程序.EXE
用 VB6.0 编写的程序,使用资源文件的方法,把 Winsock 控件封装到本程序中,在运行主程序.EXE之前,先运行本程序,通过 API 函数 GetSystemDirectory 取得系统的 Winddows\System 的目录,然后把 Winsock 控件复制到该目录下,并用 Shell 来完成控件的注册。
⑴启动 VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”
⑵在 VB 资源编辑器窗口中,点击“添加自定义资料”,增加 Winsock 控件(C:\Winddows\System\Mswinsck.ocx),再双击刚刚创建的自定义资源,弹出”编辑属性”窗口,定义如下:
类型:
“OCX”
标识号:
101
语言:
中文(中国)
⑶保存资源文件,写如下代码:
Option Explicit
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Const MAX_PATH = 260 '定义足够长的字符串
Private Sub Form_Load()
Dim TempFile() As Byte
Dim FileNum As Integer
Dim TempDir As String
TempDir = GetWinSysDir '自定义函数取得系统的 Winddows\System 的目录
TempFile = LoadResData(101, "OCX") '用以从资源 (.res) 文件装载若干可能类型的数据,并返回一个 Byte 数组
FileNum = FreeFile
Open TempDir & "\Mswinsck.ocx" For Binary Access Write As #FileNum '新建文件(把 Winsock 控件复制到指定目录下)
Put #FileNum, , TempFile
Close #FileNum
'Shell "regsvr32 " & TempDir & "\Mswinsck.ocx ", vbNormalFocus '注册控件,有弹出对话框
Shell "regsvr32 " & TempDir & "\Mswinsck.ocx /s", vbNormalFocus '注册控件,无弹出对话框
MsgBox "注册成功,现在本程序可正常运行了!!", vbOKOnly, "注册控件"
Unload Me
End Sub
Public Function GetWinSysDir() '定义读取Winddows\System 的所在目录的函数
Dim S As String, Length As Long
S = String(MAX_PATH, 0) '赋值
Length = GetSystemDirectory(S, MAX_PATH) 'S为取得目录,MAX_PATH 为长度
S = Left(S, InStr(S, Chr(0)) - 1) '去掉多余的空格
GetWinSysDir = S
End Function
'补充:S 和 MAX_PATH 的值是可以随便赋的,
'如: Dim S As String * 20
' Length = GetSystemDirectory(S, 20)
3、补充说明
在用 VB6.0 保存上述两个程序后,请再使用 VB5.0 重新打开这两个程序,并编译为主程序.EXE、注册文件.EXE。(用 VB5.0 编译的程序,在 Win98、2000 下不需要任何 DLL 文件)
程序运行
4、程序运行
将主程序.EXE、注册文件.EXE两个文件,复制到任意机器上,先运行注册文件.EXE注册第三方的控件,再运行主程序.EXE,就不会有任何的错误了,一个变通的“绿色”软件就完成了。
射天狼
2003-09-18
打赏
举报
回复
什么才算绿色软件?!?
UpdateING
2003-09-18
打赏
举报
回复
哇~~~~好多星星呀~~~~~~~~漂亮~~~~~!!
我转个帖子给楼主,希望能对这个问题有点帮助~~!
实现“绿色”软件(影子版主)
现在非常流行“绿色”软件,不需要什么安装程序只要一个 EXE 文件就可以运行程序
了,而在 VB 的编程中有许多地方需要调用第三方的控件(很难用 API 函数搞定所有的功能),这就需要制做一个安装程序,把所需要的控件、DLL 文件或其他文件打包进去了,那么在 VB 中怎么用变通的方法实现“绿色”软件呢,请看:
示例:
1、主程序.EXE
用 VB6.0 编写的程序,调用了 Winsock 控件,如果在没有安装 VB5.0、6.0 的机器上运行则会出现错误,导致程序运行失败,这时如果按一般的方法,只有把这个程序用 VB5.0、6.0 的安装程序进行打包,不然只有用用2的方法来解决了。
2、注册程序.EXE
用 VB6.0 编写的程序,使用资源文件的方法,把 Winsock 控件封装到本程序中,在运行主程序.EXE之前,先运行本程序,通过 API 函数 GetSystemDirectory 取得系统的 Winddows\System 的目录,然后把 Winsock 控件复制到该目录下,并用 Shell 来完成控件的注册。
⑴启动 VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”
⑵在 VB 资源编辑器窗口中,点击“添加自定义资料”,增加 Winsock 控件(C:\Winddows\System\Mswinsck.ocx),再双击刚刚创建的自定义资源,弹出”编辑属性”窗口,定义如下:
类型: “OCX”
标识号: 101
语言: 中文(中国)
⑶保存资源文件,写如下代码:
Option Explicit
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Const MAX_PATH = 260 '定义足够长的字符串
Private Sub Form_Load()
Dim TempFile() As Byte
Dim FileNum As Integer
Dim TempDir As String
TempDir = GetWinSysDir '自定义函数取得系统的 Winddows\System 的目录
TempFile = LoadResData(101, "OCX") '用以从资源 (.res) 文件装载若干可能类型的数据,并返回一个 Byte 数组
FileNum = FreeFile
Open TempDir & "\Mswinsck.ocx" For Binary Access Write As #FileNum '新建文件(把 Winsock 控件复制到指定目录下)
Put #FileNum, , TempFile
Close #FileNum
'Shell "regsvr32 " & TempDir & "\Mswinsck.ocx ", vbNormalFocus '注册控件,有弹出对话框
Shell "regsvr32 " & TempDir & "\Mswinsck.ocx /s", vbNormalFocus '注册控件,无弹出对话框
MsgBox "注册成功,现在本程序可正常运行了!!", vbOKOnly, "注册控件"
Unload Me
End Sub
Public Function GetWinSysDir() '定义读取Winddows\System 的所在目录的函数
Dim S As String, Length As Long
S = String(MAX_PATH, 0) '赋值
Length = GetSystemDirectory(S, MAX_PATH) 'S为取得目录,MAX_PATH 为长度
S = Left(S, InStr(S, Chr(0)) - 1) '去掉多余的空格
GetWinSysDir = S
End Function
'补充:S 和 MAX_PATH 的值是可以随便赋的,
'如: Dim S As String * 20
' Length = GetSystemDirectory(S, 20)
3、补充说明
在用 VB6.0 保存上述两个程序后,请再使用 VB5.0 重新打开这两个程序,并编译为主程序.EXE、注册文件.EXE。(用 VB5.0 编译的程序,在 Win98、2000 下不需要任何 DLL 文件)
程序运行
4、程序运行
将主程序.EXE、注册文件.EXE两个文件,复制到任意机器上,先运行注册文件.EXE注册第三方的控件,再运行主程序.EXE,就不会有任何的错误了,一个变通的“绿色”软件就完成了。
TechnoFantasy
2003-09-18
打赏
举报
回复
那要看你的程序写的有多绿 :-),现在主流操作系统都带了VB运行库,所以说一般的小程序,执行文件拷贝过去就可以了。如果调用了组件或者数据库一类的,就比较麻烦了。
yiranoon
2003-09-18
打赏
举报
回复
我没什么多说的了,三个字:谢谢大家!!!
VB
6
绿色软件
打包
工具
VB
6
绿色软件
打包
工具是一种专为Visual Basic 6(
VB
6)开发的程序设计者设计的实用工具。它允许开发者将他们的
VB
6应用程序
打包
成
独立的可执行文件,这样即使在目标计算机上没有安装
VB
6运行环境,也可以顺利运行。这...
ComDLL控件OCX免注册工具包,提升管理员权限,注册DLL,卸载OCX-
vb
6开发的
史上最强,没有之二。可以让你的软件免安装,解压即用。... ...这个花了好多天的时间。...使用说明:使用说明:------------------------...编绎生
成
ABC.EXE,把DLL_OCX目录一起
打包
, 就可以免注册在别的电脑上直接打开软件了。
VB
6.0绿色精简版——轻量高效的编程利器
End Sub如上代码所示,仅需简单拖放控件并编写几行逻辑,即可实现交互功能,体现了
VB
6.0“所见即所得”的设计理念。它深度依赖Windows注册表管理组件对象(如OCX、DLL),并通过项目文件(.
vb
p)组织资源,形
成
以...
从
VB
资源文件中释放出的EXE文件为何运行不了?
为何必须用二进制文件编辑器将释放出的EXE文件(文件头多了12字节)的前12字节才能正常运行? 二、实现“绿色”软件 现在非常流行“绿色”软件,不需要什么安装程序只要一个 EXE 文件就可以运行程序 了,...
VB
RezQ V3.1:价值1200元的
VB
6反编译软件深度解析
VB
RezQ V3.1是一款专为
VB
6开发者和维护人员设计的反编译工具。它能够读取
VB
6编译后的可执行文件(.exe)和动态链接库文件(.dll),将它们还原为接近源代码的格式,包括窗体、类模块和标准模块等。这对于理解遗留
VB
6...
VB基础类
7,789
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章