C# UnInstall Application by name.

代码
public   void  UninstallGenWFM()
        {
            
string  strReturnMsg;
            
string  productGuid;
            
string  subKey;
            
string  displayName;
            
string  strMajVersion;
            
string  strGenBuildNum;
            
string  strLocalInsFolder;
            
string  uninstallCmd;
            
string  strUnistallCmdLine;
            strUnistallCmdLine 
=  uninstallCmd  =  strLocalInsFolder  =  strMajVersion  =  displayName  =  subKey  =  productGuid  =  strReturnMsg  =   string .Empty;
        

        public const string STRBIT32 = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";

        public const string STRBIT64 = "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall";


             if  (rkLocalMachine  !=   null )
            {

                rkUninstalls  =  rkLocalMachine.OpenSubKey(STRBIT32); // Uninstall Gen build from 32bit WinOS.
                uninstallKeys  =  rkUninstalls.GetSubKeyNames();      // Get all install keys.
                 foreach  ( string  uninstallKey  in  uninstallKeys)
                {
                    
if  (uninstallKey.Length  >   14 )
                    {
                        
string  installShield  =  uninstallKey.Substring( 0 14 );
                        
if  (installShield  ==   " InstallShield_ " )     // If it is a shield key.
                        {
                             productGuid 
=  uninstallKey.Substring( 14 );  // Get the pid.
                             subKey 
=  strKeyCurrent  +   " \\ "   +  uninstallKey;
                            RegistryKey rkUninstallKey 
=  rkLocalMachine.OpenSubKey(subKey); // Open subkey list in regist.
                            
if  (rkUninstallKey  !=   null )
                            {
                                
// Geneva Workflow Manager for ACA
                                 displayName  =  (String)rkUninstallKey.GetValue( " DisplayName " , String.Empty);
                                 
if  (displayName.Length  >=   25   &&  displayName.Substring( 0 31 ==   " Geneva Workflow Manager for ACA " )
                                 {
                                     
string  displayVersion  =  (String)rkUninstallKey.GetValue( " DisplayVersion " , String.Empty);
                                     strReturnMsg 
=   " Found installed product:  "   +  displayName  +   " , Version:  "   +  displayVersion  +   " + " ;
                                     
//  Write to log file.
                                     oLOG.WRITELOG(strReturnMsg);

                                     strMajVersion 
=   this .strGenVersion.Substring( 0 5 );
                                     
if  (displayVersion  !=  strMajVersion)
                                     {
                                         uninstallCommand 
=  (String)rkUninstallKey.GetValue( " UninstallString " , String.Empty);
                                         strReturnMsg 
=   " +++++Prepare to uninstall this build !+ " ;
                                         
//  Write to log file.
                                         oLOG.WRITELOG(strReturnMsg);
                                     }
                                 }
                            }
                        }
                    }
                }
                
if  (uninstallCommand  !=   string .Empty)
                {
                    
try
                    {
                        strGenBuildNum 
=   this .strGenVersion.Substring( 6 4 );  //  Get the Geneva application build number.
                        strGenVersion  =  strGenVersion.Replace( " . " " _ " );
                        
string  copyLocalFolder  =   " copyLocalFolder " ;
                        
string  uninstallLogFile  =  Path.Combine(copyLocalFolder,  " uninstall_ "   +   this .strGenVersion  +   " .txt " );
                        
int  iFindCommand  =  uninstallCommand.IndexOf( " -runfromtemp " );
                        uninstallCmd 
=  uninstallCommand.Substring( 0 , iFindCommand  -   1 );
                        strUnistallCmdLine 
=  uninstallCommand.Substring(iFindCommand);
                        strUnistallCmdLine 
=  ( "  /uninst /verbose\ ""  + uninstallLogFile);
                         string  issfile  =  Path.Combine(copyLocalFolder,  " uninstall.iss " );

                        Process pUninstall 
=   new  Process();
                        pUninstall.StartInfo.FileName 
=  uninstallCmd;
                        pUninstall.StartInfo.Arguments 
=  strUnistallCmdLine;

                        EventLog.WriteEntry(
" A1 " , uninstallCmd);
                        EventLog.WriteEntry(
" A2 " , strUnistallCmdLine);
                        pUninstall.Start();
                        pUninstall.WaitForExit();
                    }
                    
catch  (Exception xe)
                    {
                        strReturnMsg 
=   "  Has an Error ! "   +  xe.Message  +   " + " ;
                        
//  Write to log file.
                        oLOG.WRITELOG(strReturnMsg);
                    }
                    
                }
                
else  {
                    strReturnMsg 
=   "  No Geneva Application be installed ! + " ;
                    
//  Write to log file.
                    oLOG.WRITELOG(strReturnMsg);
                }
                
            }
            
else
            {
                strReturnMsg 
=   " Can not get the regedit message from server! + " ;
                
//  Write to log file.
                oLOG.WRITELOG(strReturnMsg);
            }

            Console.WriteLine(strReturnMsg);
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值