静默卸载exe格式的程序
近段时间给用户升级版本,但是旧版本是很早之前的人制作安装的,现在是需要卸载旧版本然后安装新版本,并且需用策略分发。
所以研究了下静默卸载exe。看了网上许多资料,大多是最msi进行静默卸载的,即使是exe也是一带而过。
代码如下:
szKey1 = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{49B4D1B2-735C-4585-8729-40C94CCF9E4B}";
RegDBSetDefaultRoot( HKEY_LOCAL_MACHINE );
if(RegDBKeyExist (szKey1) < 0) then
MessageBox("没有找到旧版本,请直接安装新版本,而不是安装升级包。",INFORMATION);
endif;
//杀进程,方便卸载干净
szApplicationPath = WINSYSDIR^"taskkill.exe";
szApplicationCmdLine = "123.exe";
LongPathToQuote( szApplicationPath, TRUE );
szCmdLine = szApplicationPath + " " + "/f" + " " + "/im" + " " + "\"" +
szApplicationCmdLine + "\"";
LaunchAppAndWait("", szCmdLine, WAIT);
szApplicationCmdLine0 =WINDIR^"setup-old.exe";//前提:setup-old.exe要存在,且知道路径,如果不知道可以放同样版本的安装程序放进去
szCmdLine0="-"+"removeonly"+" "+"-"+"s";
LaunchAppAndWait(szApplicationCmdLine0, szCmdLine0, WAIT);
//删除安装文件夹,以彻底去除残留文件
DeleteDir("C:\\Program Files\\test", ALLCONTENTS);
版权声明:转载请注明原始出处。