Inno SetUp安装包:如何在程序安装时卸载驱动程序
pnputil
命令行方式卸载
如果您想通过命令行卸载.INF文件的驱动程序,您需要使用PnPUtil命令。以下是一个示例:
pnputil /delete-driver oem0.inf /uninstall
在这个示例中,oem0.inf
应该被替换为您要卸载的驱动程序的.inf文件。使用pnputil /enum-drivers
命令可以列出已安装驱动程序的列表。
请注意,你需要以管理员身份运行命令提示符窗口才能执行这个操作。
在使用这些方法之前,请确保备份您的数据,并且知道如何从系统恢复(例如,如果卸载了错误的驱动程序)。这些步骤可以在系统不稳定或无法启动的情况下造成问题。
集成到InnoSetUp:
[UninstallRun]
RunOnceId:"StopPS5Driver"; Filename:"{cmd}"; Parameters:"/C pnputil /delete-driver flydigigamemap.inf /uninstall > ""{app}\FlydigiUninstall.log"" 2>&1"; Flags:runhidden runascurrentuser
总结:这个命令集成到InnoSetUp后,最终没有卸载成功,原因未找到。
Devcon工具方式卸载
如果以上两点都确认无误但仍无法卸载,你可能需要考虑使用更底层的驱动管理工具,比如Devcon
(Windows驱动开发套件(WDK)的一部分)。
Devcon
工具提供了一个remove
命令,它可以用来卸载设备和驱动程序。在这种情况下,你需要知道设备的硬件ID。在这里是一个使用Devcon
来卸载驱动的示例:
[UninstallRun]
RunOnceId:"StopPS5Driver"; Filename:"{cmd}"; Parameters:"/C devcon remove @YourHardwareID > ""{app}\Uninstall.log"" 2>&1"; Flags:runhidden runascurrentuser
在这个示例中,你应该把YourHardwareID
替换为你要卸载的设备的硬件ID。
请注意,devcon
不是Windows操作系统的标准组成部分,因此如果你选择这种方法,你可能需要把devcon
的可执行文件包含在你的安装包中,或者在你的卸载脚本中下载它。
最后,记住操作驱动和设备时应当小心,因为不正确的操作可能会导致系统不稳定。在执行任何这样的操作前,你应当确保已经备份了你的重要数据。
卸载应用程序时
[UninstallRun]
RunOnceId:"StopPS5Driver"; Filename:"{cmd}"; Parameters:"/C pnputil /delete-driver @YOUInfFileName /uninstall > ""{app}\FlydigiUninstall.log"" 2>&1"; Flags:runhidden runascurrentuser
安装应用程序
[Run]
Filename:"{app}\devcon.exe"; Parameters:"remove @YourHardwareID"; Flags:runhidden runascurrentuser; StatusMsg:"Removing old driver..."
总结:这种方式完美解决驱动卸载的问题。
Inno SetUp安装包:如何在程序安装时卸载驱动程序的更多相关文章
- Inno Setup入门(十一)——完成安装后执行某些程序
Inno Setup入门(十一)——完成安装后执行某些程序 2011-02-16 16:24:23| 分类: Inno Setup | 标签:inno setup |举报 |字号 订阅 ...
- [转]Visual Studio 2017各版本安装包离线下载、安装全解析
Visual Studio 2017各版本安装包离线下载.安装全解析 2017-3-10 11:15:03来源:IT之家作者:寂靜·櫻花雨责编:晨风评论:165 感谢IT之家网友 寂靜·櫻花雨的投 ...
- Linux下一键安装包的基础上安装SVN及实现nginx web同步更新
Linux下一键安装包的基础上安装SVN及实现nginx web同步更新 一.安装 1.查看是否安装cvs rpm -qa | grep subversion 2.安装 yum install sub ...
- Android监听应用程序安装和卸载
Android监听应用程序安装和卸载 第一. 新建监听类:BootReceiver继承BroadcastReceiver package com.rongfzh.yc; import android. ...
- WinForm使用Setuo Project打包安装包 (附带vs2019 InstallerProjects安装程序)
vs2019 InstallerProjects安装程序地址: 链接:https://pan.baidu.com/s/1K5iDuQT4CBBw2dJjRLqhjg提取码:dfhy 转载至https: ...
- Inno Setup入门(十一)——完成安装后执行某些程序
有些时候我们的程序虽然能够很好的完成安装,但是程序的配置工作可能需要其他的一些程序来辅助完成,如果不执行这些程序,主程序就不能很好的完成工作,甚至不能完成工作,一个很明显的例子是,目前许多程序是通过N ...
- (转)Inno Setup入门(十一)——完成安装后执行某些程序
本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250901 有些时候我们的程序虽然能够很好的完成安装,但是程序的配 ...
- Inno Setup入门(九)——修改安装过程中的文字显示
前面说到过可以使用不用的语言文件实现不同的显示方式,方便与国际接轨,事实上即使没有语言文件也可以实现修改.[Messages]段用于定义安装程序和卸载程序中显示的消息.一般不需要创建 [Message ...
- Visual Studio 2017各版本安装包离线下载、安装全解析
关于Visual Studio 2017各版本安装包离线下载.更新和安装的方法以及通过已下载版本减少下载量的办法 微软最近发布了正式版Visual Studio 2017并公开了其下载方式,不过由于V ...
- Inno Setup入门(九)——修改安装过程中的文字显示
前面说到过可以使用不用的语言文件实现不同的显示方式,方便与国际接轨,事实上即使没有语言文件也可以实现修改.[Messages] 段用于定义安装程序和卸载程序中显示的消息.一般不需要创建 [Messag ...
随机推荐
- vb.net 数据库连接字符串
'设置数据库连接字符串 Dim connString As String = "Data Source=.\SQLEXPRESS;Initial Catalog=YourDatabaseNa ...
- 2023-05-21:给定一个字符串 s 和一个整数 k 。你可以从 s 的前 k 个字母中选择一个, 并把它加到字符串的末尾。 返回 在应用上述步骤的任意数量的移动后,字典上最小的字符串。 输入:s
2023-05-21:给定一个字符串 s 和一个整数 k .你可以从 s 的前 k 个字母中选择一个, 并把它加到字符串的末尾. 返回 在应用上述步骤的任意数量的移动后,字典上最小的字符串. 输入:s ...
- 逍遥自在学C语言 | 揭开while循环的神秘面纱
前言 循环是一种重要的控制结构,可以使程序重复执行一段代码,直到满足特定条件为止. 在C语言中,while和do-while是两种常用的循环结构,本文将详细介绍这两种循环的用法. 一.人物简介 第一位 ...
- 六大云端 Jupyter Notebook 平台测评
有许多方法可以与其他人共享静态 Jupyter 笔记本,例如把它发布在 GitHub 上或通过 nbviewer 链接进行分享. 但是,如果接收人已经安装了 Jupyter Notebook 环境,那 ...
- 网站开发[1] - Spring Boot 快速建立项目
前言 学校的数据库课程要求做出前端页面对数据库进行交互, 可以使用 Python 或者 Java 语言作为后端, Python语言使用起来非常方便, 但出于对自己的挑战以及更加贴合实际企业开发, 我选 ...
- uniapp主题切换功能的第一种实现方式(scss变量+vuex)
随着用户端体验的不断提升,很多应用在上线的时候都要求做不同的主题,最基本的就是白天与夜间主题. 就像b站app主题切换,像这样的 uniapp因为能轻松实现多端发布而得到很多开发者的青睐,但每个端的实 ...
- Handler机制实现原理总结
Handler一般用于线程间通信,如常用的子线程使用handler让主线程更新UI.那么这是怎么实现的呢? 我们先把这个大问题分解成多个小问题: post();postDelayed();sendMe ...
- 【园子资深博主直播】 冰蓝老师《ChatGPT 初探》
AI对经济增长.经济周期.经济形态.社会就业都有着非常巨大的影响,ChatGPT4.0发布后,燃起了我们每一个开发人的激情和恐惧,但各路自媒体信息杂乱无序,缺少非常系统性的ChatGPT原理解读. 此 ...
- 一分钟学一个 Linux 命令 - ps
前言 大家好,我是 god23bin.欢迎来到<一分钟学一个 Linux 命令>系列,每天只需一分钟,记住一个 Linux 命令不成问题.今天要说的是 ps 命令. 什么是 ps 命令? ...
- 用postman模拟“授权代码授予”模式下获取Azure的用户信息(UserInfo)
用postman模拟"授权代码授予"模式下获取Azure的用户信息(UserInfo) 1. 准备参数: 图1: 图2: 2. 调用: 点击按钮"Get New Acce ...