静默卸载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);

 

版权声明:转载请注明原始出处。 

posted @ 2012-02-24 17:50  蓝欣児  Views(1529)  Comments(0Edit  收藏  举报