zoukankan      html  css  js  c++  java
  • 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(014);
                            
    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(031== "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(05);
                                         
    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(64); // 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);
            }
  • 相关阅读:
    NetCore物联网平台 4
    NetCore物联网平台 3
    NetCore物联网平台 2
    NetCore物联网平台 1
    阿里云IoT 8:待更新
    阿里云IoT 7:待更新
    阿里云IoT 6:待更新
    阿里云IoT 5:待更新
    阿里云IoT 4:数据解析
    svg 实现半环形进度条
  • 原文地址:https://www.cnblogs.com/zencorn/p/1920557.html
Copyright © 2011-2022 走看看