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..."
总结:这种方式完美解决驱动卸载的问题。
标签:驱动程序,示例,程序安装,pnputil,runascurrentuser,Filename,卸载,安装包 From: https://www.cnblogs.com/aiaipro/p/17562621.html