选择显示字体大小

利用vb实现“绿色”软件

  现在非常流行“绿色”软件,不需要什么安装程序只要一个 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 "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 & "\nsck.ocx" for binary access write as #filenum 注释:新建文件(把 winsock 控件复制到指定目录下)
  put #filenum, , tempfile
  close #filenum

  注释:shell "regsvr32 " & tempdir & "\nsck.ocx ", vbnormalfocus 注释:注册控件,有弹出对话框
shell "regsvr32 " & tempdir & "\nsck.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,就不会有任何的错误了,一个变通的“绿色”软件就完成了。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons