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

如何使用 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 <script>document.write("太极统计");</script> 太极统计 太极统计
网页设计制作:LiZhiDong OICQ:1144446

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
# Uchat——基于python的安全即时通讯系统 ## 目的 设计完成简易的安全即时通讯系统,实现类似于QQ的聊天软件; ## 需求分析 ### 功能需求 1. 聊天客户端 1. 注册:用户与集中服务器通信完成注册,包括用户名、密码、邮箱、性别、年龄、数字证书等信息传输,其中数字证书包含公钥、用户名、邮箱等信息。私钥单独保存在客户端一个文件夹下不进行传输;能显示用户名、邮箱不符合格式规范或者重复,空输入等错误信息。 2. 认证登录:客户端与集中服务器通信完成用户名、口令认证登录;能显示用户名、密码错误导致的登录错误信息。还有已登录账号再次登录时的多重登录检验,并将之前登陆的账号顶下去。 3. 好友管理:用户可通过服务器进行搜索、添加、删除好友。 4. 即时通信:用户通过客户端实现与好友的聊天,包括文字、图片传输。文字可实现字体颜色和大小的改变。 5. 聊天记录:客户端能够保存聊天记录并且可以查看聊天记录。 6. 消息加解密:采用D-H体制协商加密秘钥,用对称密码AES算法进行加解密。 7. 消息摘要:使用MD5算法实现消息摘要认证功能,确保发送消息的完整性。 8. 用户未读消息提醒:红点标注未读消息数目,并按最后发送消息时间排列好友列表。 9. 用户离线后消息处理:用户上线后及时接收到离线时好友发送的消息。 功能结构图 ![](https://leeyuxun-1258157351.cos.ap-beijing.myqcloud.com/img/20200714124535.png) 2. 集中服务器 1. 用户注册:与用户通信完成注册,对用户名和邮箱格式、是否重复,输入不规范等做必要的检验,接收客户端的数字证书,发送服务端数字证书。 2. 登录验证:用户登录时,验证用户名和密码是否正确,并向客户端返回登录结果。如信息正确,就将在线好友用户发给该用户,将该用户的状态发给各在线好友用户,同时在服务器端显示出来。 3. 用户公钥,证书提供:用户向好友发送消息时,与服务器建立安全连接获取好友的证书信息,服务器控制client.socket像好友用户发送信息,实现用户之间的通信。 4. 用户在线状态维护:当用户在线时,记录保存用户的在线状态、IP地址、端口号。 5. 用户消息列表实时发放:由监听函数将操作实时加入到执行函数列表中递归执行。向用户发送其好友列表的在线离线情况,包括好友用户名、IP地址、端口号。并按照最后发消息的时间对好友消息列表进行排序。 功能结构图 ![](https://leeyuxun-1258157351.cos.ap-beijing.myqcloud.com/img/20200714124653.png) 3. 高级功能 1. 离线用户消息通知:暂时存储离线用户的消息,用户上线后,显示未读的消息并用红点标注; 2. 好友在线离线功能实时更新; 3. 限制账号只能一处登录:一个账号只能在一处登录,在别处登录时会把原先的登录踢下线; 4. 支持群聊功能:可以创建群聊,并根据群号加入群聊; 5. 聊天时字体大小颜色可更改; 6. 支持聊天各类图像文件的缓存。 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
## 密码管理器 食用指北 *** ### 用途 这是一个 _Python3_ 基于pyside6开发的一个密码管理器,用于加密存储我们在日常中的各种密码。解决使用复杂密码但是又怕记不住,简单密码有不安全的老大难问题。 **功能** * 多用户使用 * 数据本地化管理 * 本地存储使用多种加密方式 *** ### 开发初衷 很多小伙伴应该都有被盗号的经历吧。首先有些黑客不得不说确实非常厉害,轻轻松松就能把你的账号盗走。 但是也存在自己慢慢实在太简单了,这种密码叫做弱密码,就比如说123456这种密码。 怎么说呢,这种密码确实很容易记,不知道您清不清楚这种密码在很多爆破字典中都是第一个,也就意味着,别人只要一式就知道你的密码了。 `也就被盗了。` 怎么说呢,这种情况是真的存在的,虽然这种电脑软件可能没那么实用,毕竟更多人用的都是手机,但是吧! 俺不会开发APP,我不是程序员,俺只会Python。 当然有的小伙伴可能会说开发网站,小程序什么的,这个的话还真不行,虽然我可以做,但是就算做出来,我自己都不会存。因为这些都会需要在服务器中,这种要是这个服务器被黑客攻击呢!不可控因素太多了! 我们生活在这透明的世界上,虽然没有隐私可言,但是还是保护一下自己,不要再用那种弱密码了。 实现功能 *** ### 准备工作 您需要准备以下东西 * _Python3.9_ 及以上版本(或自行改写旧版不兼容的语法) * _peewee_ 3.15.3 * _pycryptodome_ 3.15.0 或其等价替代 * _PySide6_ 6.3.2 部分版本需要自行修改窗口移动代码,会存在不兼容 *** ### 如何使用 *** #### 源码运行 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
总体概括 注册流程 首先进行输入用户名(邮箱)、密码以及验证码,输入完之后点击注册按钮。如果输入的不正确,提示错误信息。 如果一切信息填写正确无误,调用STMP模块发送激活邮件,用户必须要点击接收到邮箱链接,进行邮件激活后才方可登陆。 即使注册成功,没有激活的用户也不能登陆,用户以get的方式直接重定向到注册页面。 注册登录: 用户能在系统中进行登陆注册和忘记密码进行找回的功能。 个人中心:修改头像,修改密码,修改邮箱,可以看到我的信息。 日志记录: 记录后台人员的操作,方便发现BUG和查看各项调用进行时间。 导航栏:学生信息中有基本信息、年级及成绩信息的模块,能够排序筛选等功能。 多选操作: 可以选择多条记录进行删除操作,还可以在课程列表页可以对不同课程进行排序。 数据页码: 可以设置各项数据在每一页中显示的数量多少,进行翻页功能。 模块列表页: 能够有过滤器功能,在范围内进行查看数据。还能将数据导出为csv,xml,json等数据格式。 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
VB.NET自动更新程序可以帮助我们在软件发布之后,通过自动下载和安装更新来保持软件的最新版本和功能。以下是一个简单的VB.NET自动更新程序的实现步骤: 1. 获取当前软件的版本号:使用VB.NET中的特定函数或方法,我们可以获取当前软件的版本号。 2. 检测更新:连接到服务器,检测是否有可用更新。可以通过访问一个特定的URL或从服务器获取一个更新文件来检查是否有新版本可用。 3. 下载更新:如果有可用的更新,使用VB.NET中的下载功能,从服务器上下载更新文件。 4. 检查下载文件的完整性和校验:使用哈希算法(如MD5或SHA)来检查下载的文件的完整性和校验。比较下载文件的哈希值与服务器上的哈希值是否匹配,以确保文件没有被更改或损坏。 5. 安装更新:解压下载的更新文件,并将更新文件应用到软件的相应位置。这可以通过调用外部可执行文件或通过VB.NET编写的代码实现。 6. 重启应用程序:在更新完成后,可能需要重新启动应用程序以使更新生效。 7. 定期检查更新:可以在应用程序启动时或定期检查更新,以确保用户一直使用最新版本的软件。 需要注意的是,VB.NET自动更新程序需要与服务器端进行交互,并且需要在发布新版本时更新服务器上的更新文件。此外,程序应该具有异常处理机制,以处理网络连接失败、下载文件损坏等情况。最后,还需要考虑用户隐私和安全性,确保更新过程中不会泄露敏感信息或遭受恶意软件攻击。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shawls

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值