如何使用 VB 编写自动反安装的程序?

原创 2001年06月05日 22:05:00
如何使用 VB 编写自动反安装的程序?
如果您安装了某一个软件之后,想要反安装,您有二个方法:
1、打开【控制面板】中的【添加删除新程序】,选择该软件來反安装。
2、选择【开始】【程序集】中软件所产生的程序組中的反安装。

上面的第一种方法,您不需要作任何处理,一般软件在安装完后,都会在【控制面板】中的【添加删除新程序】多一个该软件的选项。而第二种方法,就必须要我们编写程序來解决了!

假设,今天我们编写了一个程序叫 Test,当您完成 Test.exe 之后,您必须再多编写一个自动反安装的程序,我们將文件名称设为 unTest.exe(先不要管如何编写,后面会說明)。二支程序都完成后,您使用 VB 提供的应用程序安装向导(Application Setup Wizard) 來制作安装程序時,必须额外再加入 unTest.exe!

加入 unTest.exe 之后,使用者安装后,安装程序並不会在【开始】【程序集】中该系統所产生的程序組【Test】中加入这个自动反安装程序 unTest.exe 的捷径,安装程序只会將unTest.exe 连同 Test.exe 一起复制到应用程序的目录中而已!所以如果您想产生unTest.exe 的捷径,您可能需要稍微修改一下 VB 提供的应用程序安装向导程序!

以下我们就实际來看看 unTest.exe 程序如何编写:

在 VB 中建立一个新文档,取名为 unTest.vbp,表单为 unTest.frm,不需要任何控制项,在表单中加入以下程序代码:

Private Declare Function GetWindowsDirectory Lib "kernel32" _
Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Sub Form_Load()
On Error Goto BaddUn
Dim X&
Dim buffer As String * 128
Dim UnStr As String
Dim size As Integer
Dim retval As Integer
buffer = Space$(128)
size = 128
retval = GetWindowsDirectory(ByVal buffer, ByVal size)
Me.Caption = buffer
'以下的程序代码必须编写在同一行中
''''''''''''''''''''''''''''''''''''''''
UnStr = Me.Caption & "/ST5UNST.EXE -n " & Chr(34) & App.Path & "/ST5UNST.LOG" & Chr(34)
''''''''''''''''''''''''''''''''''''''''
'MsgBox UnStr '可显示可不显示, 只是测试用
'X& = Shell("C:/WINDOWS/ST5UNST.EXE -n "
' "C:/Program Files/App Name/ST5UNST.LOG""
' ", vbNormalFocus)
X& = Shell(UnStr, vbNormalFocus)
Unload Me
Exit Sub
BaddUn:
MsgBox "for some reason UnInstall can not run."
Exit Sub
End Sub
由以上的程序代码中,您是否发现, unTest.exe 必须和 St5unst.log 放在同一个目录中,不过这只要和上面的程序一样使用 App.Path 就可以解决了!

注:这个示例是使用 VB5 來做测试的,如果是其他版本的 VB,ST5UNST.LOG 可能必须改变!

VB编程乐园版权所有©,1999-2000 太极统计 太极统计
网页设计制作:LiZhiDong OICQ:1144446

VB调用C#写的WinForm.NET控件

一.前言:   虽然IT开发技术日新月异,不过业界仍然运行着大量的VB系统,这些系统凝聚了不少客户的投资,应当要一定程度的保护和利用。因此也就产生了一种需求,也就是使用旧的开发技术仍然可以使用新技术...
  • ddjj_1980
  • ddjj_1980
  • 2013年04月09日 16:08
  • 1782

使用VB编写纯ASP程序

使用VB编写纯ASP程序  前几天大哥对我说,使用asp真麻烦,编译环境实在是差劲,他总是在vb里面写好调试好代码然后在把代码粘贴到asp  程序中,为此,我在这提出一个解决之道。使用VB接替AS...
  • u014739770
  • u014739770
  • 2014年04月24日 12:25
  • 296

VB脚本编写的小题库程序

把Excel也当成一个数据库,只不过这个数据库只支持文本。程序可以改变和增加Excel里面的题目内容,题库也会相应增大,注意总题数也要改成和实际题目数目相应的数字。...
  • ciel_arc
  • ciel_arc
  • 2016年02月07日 18:54
  • 241

用VB编写键盘拦截程序

我们知道,在一些程序中,有一些快捷方式(如:Shift键最小化、ESC键退出、Ctrl+S存盘、Alt+x退出等等)。以前有一些介绍使用Win32 API可以做到,但过于繁琐,其实VB本身已经给我们提...
  • u014112224
  • u014112224
  • 2014年03月16日 17:44
  • 254

VB程序打包方法

VB学习已经有很长一段时间了,在马上就迎来的作品展中,相信大家的作品也接近了尾声,VB程序的最后一步就是打包发布,对此,我遇到了很多问题,我找到了两个解决的方法。利用VB本身提供的打包程序可以实现打包...
  • lu930124
  • lu930124
  • 2013年04月24日 21:15
  • 5058

VB和Dev-C++合作——手把手教你写GUI程序

【原文地址】 VB和Dev-C++合作——手把手教你写GUI程序 - 子清行 - 博客频道 - CSDN.NET  http://blog.csdn.net/redraiment/article...
  • qq_34028920
  • qq_34028920
  • 2016年10月22日 16:52
  • 570

一个求24点所有可能解的VB源代码及程序实现

求24点的VB的不多。网上求一种解的代码多,但是求所有解的代码和程序更不多。最近花了2天做了一个求24点所有解的VB小程序。...
  • zhouyun646356977
  • zhouyun646356977
  • 2015年10月10日 14:22
  • 650

vb中自动调整控件的大小

机房收费系统中有很多查询记录类的窗体用到了MSHFlexGrid控件。当没有调整该控件的大小时,查询结果可能会如图所示: 而我们需要的是: 这本来是一个很简单的调整MSHFlexGrid列宽的...
  • u010930340
  • u010930340
  • 2013年11月17日 21:26
  • 1571

如何写一个自动抢微信红包的程序

春节临近,为避免错失土豪们的红包,动手写了一个自动抢微信红包的小程序,试了一下效果还不错。本程序适用于安卓4.1版本以上手机,不需要ROOT权限。现将程序的设计要点记录如下,供有兴趣的同行参考。 一、...
  • wjinling2016
  • wjinling2016
  • 2016年01月28日 16:02
  • 5146

如何用VB编写自己的DLL文件,并调用其中的函数

如何用VB编写自己的DLL文件,并调用其中的函数?
  • sillyboy1104
  • sillyboy1104
  • 2015年03月09日 22:54
  • 2575
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何使用 VB 编写自动反安装的程序?
举报原因:
原因补充:

(最多只允许输入30个字)