说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

HTML文档下载 WORD文档下载 PDF文档下载
VB如何使用 VB 编写自动反安装的程序?
版本:VB6 / VB5 / VB4-32

如果您安装了某一个软件之后,想要反安装,您有二个方法:
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 可能必须改变!
移动周报:疯狂吐槽还是更得欢心?细数iOS 7的是与非 国内最受欢迎的开源项目集锦 开始3D编程前需注意的十件事 [CTO俱乐部第100期]软件平台的新思维及2345技术团队管理经验分享 失败怪圈:今天的移动App在重蹈1999年的覆辙 极客编程必备的五大PHP开发应用 Oracle或将宣布与Salesforce.com,NetSuite以及微软结盟 【专访间】神州数码谢耘:智慧城市需要以“融合平台”为特征的沃尔玛模式 对话OW2 CEO:开源≠安全隐患,免费≠无利可图 不断抄袭的Facebook正逐步沦为一家普通的公司 Windows 8.1会不会把Windows 8的“Modern”开发者踢到路边 任志鹏:FusionCloud是华为二十年技术积累的精华 机器学习典范?iOS7中的Siri能主动学习如何发音 三星宣布关闭PC业务 主推便携设备和一体机 Web设计师必须掌握的六大设计策略 Facebook为什么要推Instagram视频分享功能? 天气预报(id后面的9位数字为城市代码)年月日,星期,当前时间(仅用于javascript) PHP 5.5.0发布 不再支持Windows XP和2003 专访ThinkPHP创始人刘晨:用最简单最快速的方式开发PHP应用 重构:仔细查看,改进代码 加速编码的17款最棒的CSS工具 生于微信:专访疯狂猜图CEO曹晓刚 谷歌:受感染的合法网站远比恶意网站危险性大 Mozilla正式发布Firefox 22应用程序开发者受益 支持3D游戏、视频通话和文件分享 直接拿来用!最火的前端开发项目(一) Salesforce.com和Oracle在云合作上达成长期协议 即将到来的数据中心僵尸末日,谁能成为最后的幸存者?! Andorid APK反逆向解决方案:梆梆加固原理探寻 科技拥抱设计:体验设计如何创新? Rails 4.0正式发布 命途多舛的webOS,两度易主,生生死死多少回 小弟编写了一个实时传送信息软件。遇到一个小问题。请高手解答。--附服务端源代码 如何判断当前用户的计算机是否在网上? [高分求救]如何判断这个表单里有多少个字段要作答和每个字段是否都已经做答了(也就是值不为空),在线等待! 调试精通EJB2中的CMP例子时在finder方法中EJB-QL都出现这种编译错误,如何是好? 关于web表格控件的问题(急着给大家送分哦,快快!) 菜鸟问题 关于Struts 基础知识的简单问题 开发查询程序时能不能使用DataView来过滤或排序? 不能忍受北京这个城市了。我要离开这里。 一个关于DROP TABLE的问题? 小弟编写了一个实时传送信息软件。遇到一个小问题。请高手解答。--附客户端源代码 帮忙 关于数据库,请教高手! now()取得的是客户端的还是服务器端的时间? 一个用iframe动态调用其他页面的问题,在线等待! XP、2000启动后有一段“休克”期应该怎么解决? 一个奇怪的问题:如何注册BCB6??? servlet怎么得到访问者的ip地址?或者是从那个页面链接过来的? 高手留步 ! 怎样取代系统默认行为 ? 求阶乘的代码,,书上抄的,怎么又有错呀, mysql 3.x.x好像不支持事务,这么办啊? --------用联通手机的兄弟请进来领分!!!-------(续) socket通讯与操作系统有关系吗? 程序员里有多少买了车的? 请高手帮忙 有什么好的VC打包工具吗? 请问如何让程序自动运行?并且如何取消程序的自动运行? 两个问题求助~~~~~~~~~~~~~~~~~~~~ 关于同一台计算机两个id的邮件配置问题 在一个datawindow中放了多个button,如何针对每一个Button进行编程? 派生类的三种继承方式 高薪诚聘 C# 程序员 一个有关失效率的问题,请大侠们指点! sun的j2ee sdk 1.3.1不能在2000server上运行?? [黑色幽默]唉 难道这就是IT人的未来? 几个项目开发问题,有经验者请进。 關於用vb取sybase數據的問題 如何实现呢?请教各位高手,高高手。。。 急。死。问一下UDP的写的一个NETICQ的使用方法.在线等 初学JSP,在用JavaBean创建了一个数据库连接的程序,但是在JSP中用<jsp:useBean>使用JavaBean时出现了问题。 我是新手,一个工程换目录了需要改哪些地方? listview控件网格的高度如何设置啊? 请问TFORM 中的onActivate 事件是在什么时候触发 help 关于菜单 為什麼服務器中的NETLOGON(用戶登錄)服務老是出現錯誤呢? 我的PIII 667 现在启动时自检为333E,然后进入CMOS,提示CPU频率不对,这是什么原因? 分不多了,帮我看看这个短小超难的SQL怎么写 unsigned char * 和 object pascal 中的什么是等价的?pchar 是无符号的么? 那位大哥帮看看 这句为什么总编译不过去 xiexie trectangle类型为什么总说我没有定义?在线等…… 为何收不到邮件的BODY部分? 母亲的爱是 了我的心田 请问“金风未动蝉先觉”用英语应该怎么讲? 母爱像一股涓涓细流,虽无声,却能够滋润干旱的心田.续写 今年哪个国家的雪景最美.3Q 机械手摇式电阻表适合在什么条件下使用? 电阻电容led类电子元件成型机组装的时候都能用哪些配件?像是凸轮之类的东西,如有知道者烦请告知一下, 横看蟹意,静取龟年和金风未动蝉先觉的字意解释 50个糖果分10个瓶子 孑孓的发音还有:虿 孑孓怎么读 孑孓怎么发音 德国海关发现1500余幅毕加索等大师加涉毒市长为犯错表歉意 但未明确承认日台风灾区一男子称受灾系因禁止大麻而孙燕姿鲁豫户田惠梨香 女星骨瘦如柴太澳男子头部遭枪击送医后仅数小时自行离泰游船沉没已致6人罹难 包括一名中国美国务卿访问埃及 美将与埃过渡政府合农夫山泉派员举报《京华时报》 称实行印度将发射环火星探测器 否认与华“太调查显示常戴有毒银饰或影响孩子智力叙提前完成销毁化武初期任务 美被指进24小时给同学起外号 引来杀身之祸我们不是木头石头机器没有什么礼物比给你写信更好大把富豪能坐直升机登顶街区大小事市民可打飞的上班分类广告土奶粉“死掐”洋奶粉价格逐步和国际趋于一致厘清责任才能避免不幸再度发生神秘王爷的爱妃媚海无涯武林外史九月鹰飞狼宠碧血洗银枪一缕温柔醉英雄边城浪子飞刀,又见飞刀白玉老虎超级控制器文登旅游德化旅游定安旅游梓潼旅游城固旅游亚东旅游邵武旅游苗栗旅游满归旅游漳浦旅游嵊州旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘