用VB也可以做绿色软件 下载本文

内容发布更新时间 : 2024/5/29 3:06:29星期一 下面是文章的全部内容请认真阅读。

用VB编写绿色软件

我认为的绿色软件就是免安装,短小精干的软件,目前的大部分共享软件都属于此类(或向绿色

软件靠拢)。

连比较大的phoshop软件也把一些注册项放到一个专门的注册文件(reg文件)里,到时重装的操作系统,只需把reg文件导入的注册表即可。此外比如金山软件,基本上都是不用安装,即可运行。

目前绝大部分的共享软件都是用delphi做的,虽然它的pascal语法让人别扭,可大家还是坚持用,

最好的理由就是,它做绿色软件很方便,一个Exe文件基本上什么都搞定了。

用VC做共享软件吧,如果是基于API开发(非MFC)总是有点杀鸡焉用牛刀的感觉(目前的机器配置都比较高,共享软件一般都是应用方面的小程序,不像服务器,对性能要求那么高,再说,用VC开

发,周期也相对较长)。

MFC虽然开发相对比较快速,但是也存在一个运行库问题,做成动态链接吧,windows 9X系列的用户无法使用,编译成静态链接吧,软件尺寸一下扩充了1M多,在网络带宽还不富裕的情况下,还是少

用为妙。

用VB做绿色软件,也有很多这方面的介绍,不过一个稍微复杂的程序,也带上好多嫁妆:vb运行库,ocx控件等等,如果软件中还使用了数据库(如ADO,DAO等),那能不能做成绿色软件还是个未知

数。

不过VB易上手,开发软件较为快速,如果API技术掌握的较好的话,大部分软件都可以较好的实现。

如果用VB做共享软件,开发即轻松,又可以增加额外收入,何乐而不为呢?

可是上面所说的问题该如何解决呢?结合我的体会和开发了部分绿色软件的基础上我谈谈我的看

法,不当之处,请方家斧正。

第一、针对运行库的问题可以这样解决。目前大部分的用户都是Win2000、XP平台,而win2000以上的平台微软已为我们把运行库添加到系统目录了。(关于这一点,delphi用户很不满,认为这是不公平竞争,VB的运行库、MFC的运行库都集成到系统了,这样delphi至少在软件大小上已远远的落后VB和MFC开发的软件了),所以这部分用户不用考虑运行库的问题,对9x系列的用户,可以把VB运行库放在网上,需要的话让用户直接从网上下载。如果你觉得不介意软件尺寸的话,也可以把运行库和你的软

件一起发布(直接把运行库放到当前软件的同一目录即可)。

目前虽说微软不支持VB了,但是只要Windows的后续版本照样集成VB运行库,用VB开发共享软件还是大有前景的(微软上百兆.net平台都敢集成,更何况区区1.25M的VB运行库呢?我对此乐观:)

第二、如果用VB开发共享软件,我建议仅用VB的基本控件,此外不要用DAO,ADO等数据库操作控件(或引用),如果操作数据,我建议自己定义数据库格式(可以仿照dBase等数据库格式),在数据量不算大的情况下(比如1万条记录以下),完全可以这样做,目前的用户机器都比较高档,没必要考虑太多的性能问题。这样的话仅需要运行库即可运行VB程序,在Win2000以上系统,直接就可以运行。

第三、软件界面为了美观,直接用image控件贴图即可,这种方式我一直爱用。对多语言版本,可

以采用读取ini文件方式,也可以直接读取VC编译的纯资源文件。

第四、软件开发完毕后,最好用exe压缩软件压缩一下,这样有两个好处,一是对被人破解加了一

个障碍,二是,软件尺寸大大减小,利于发布。

第五、至于加密,那是仁者见仁,智者见智的事了,这里我就没必要多谈了。

随着计算机的不断发展,操作系统的不断更新,硬盘容量、内存容量及相应的存取速度不断提高,使得开发出来的应用程序不再只是单一的可执行文件,特别是Windows应用程序,微软在Windows中引入了一个非常好但管理不方便的新东西──动态链接库DLL。这样开发出来的应用程序本身变小了,可相应辅佐运行的DLL文件变多了,而且在Windows中开发的程序,特别是用VB开发的程序往往要用到第三方控件OCX。这样,开发出来的程序就不容易管理,而且Windows应用程序一般都需要安装。而卸载往往又不彻底,常常会保留一些所谓的共享文件。安装一个、两个这样的程序倒无妨,安装多了Windows的系统文件夹就会急剧膨胀。绿色软件就是在这种情况下诞生的,它的特点是程序不用安装,拷贝或解压

到一个目录下就可以运行,卸载只要删除整个目录就OK了。

下面我们来谈谈怎样用VB 6.0编写一个绿色软件。

首先,用VB编写好应用程序。需注意的是,一些用不着的第三方控件最好不要保留在工程中,这样

开发出来的程序相对较小,并生成EXE文件。

其次,程序编好后,退出开发环境,启动VB 6.0中文版工具──Package & Deployment向导。用向导将应用程序打包。完成后用Winzip 8.0或其他能打开并能解压CAB文件的压缩工具打开安装目录下的SETUP.CAB,并解压到一个临时目录,删除St6unst.exe和Setup1.exe文件(特别注意Msvbvm60.dll

和Asycfilt.dll必须带上,否则程序无法运行)。

再次,将应用程序本身要调用到的下级目录一起拷贝到这个临时目录中。如没有则跳过这一步。 最后,将这个临时目录中的文件整理一下。如果你认为这些文件大了些,你可以用ASPACK或其他一些可执行文件压缩工具将这个目录中的可执行文件、DLL文件、OCX文件压缩一下,用VB编写的程序一般经压缩后大小只有原来的30%。如果运行稳定就可以将BAK文件删除,不行则恢复到原来的面貌。

现在你可以将这个目录改成你所需的名字,打包就可以发行了。它能在没安装VB的机器中正常

运行,怎么样,去Try一下吧,自己也来开发绿色软件。

运行环境:Windows98、Visual Basic6.0 中文版(Visual Basic5.0原理基本相同)、Aspack (可选)。

之三:

现在非常流行“绿色”软件,不需要什么安装程序只要一个 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\\nsck.ocx),再双击刚刚创建的自定义资源,弹出”编辑属性”窗口,定义如下:

类型: “OCX” 标识号: 101 语言: 中文(中国) ⑶保存资源文件,写如下代码:

Option Explicit

Private Declare Function GetSystemDirectory Lib \

(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, \注释:用以从资源 (.res) 文件装载若干可能类型的数

据,并返回一个 Byte 数组

FileNum = FreeFile

Open TempDir & \注释:新建文件(把

Winsock 控件复制到指定目录下)

Put #FileNum, , TempFile

Close #FileNum

注释:Shell \注释:注册控件,有弹出对

话框

Shell \注释:注册控件,无弹出对话框

MsgBox \注册成功,现在本程序可正常运行了!!\注册控件\

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 为长度