文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C# UnInstall Application by name.

C# UnInstall Application by name.

时间:2010-12-29  来源:zencorn

        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);
        }

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载