怎样用QT在windows环境通过编程卸载installShield打包的程序

通常情况下,如果是一个完备的软件,我们可以通过启动软件的uninstaller.exe之类的程序来完成卸载。但是使用installShield打包的程序,本身可能并不含有这类卸载程序。此时,我们可以通过MsiExec.exe来对其进行卸载。

QProcess process;
process.start("MsiExec.exe /x{???}");
process.waitForFinished();

在QT中,按如下命令,只需要将???替换为软件对应的注册表key值即可。而这个值要怎么找呢?一个简单的方法,是使用应用程序在程序列表(想卸载某一程序时windows的那个列表)中的名字,在注册表中进行搜索,多查找几次,就能找到其位置。对应的也会有MsiExec.exe命令的显示在UninstallString值项里。只要把里面的/I替换成/x,按照上述代码使用即可。

posted @ 2016-03-23 15:32  倾越  阅读(557)  评论(0编辑  收藏  举报