C# UnInstall Application by name.
来源:互联网 发布:淘宝网店推广方法与营销技巧 编辑:程序博客网 时间:2024/06/01 09:44
代码
if (rkLocalMachine != null)
{
rkUninstalls = rkLocalMachine.OpenSubKey(STRBIT32); // Uninstall Gen build from 32bit WinOS.
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;
{
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);
}
{
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);
}
- C# UnInstall Application by name.
- Word For Application By C#
- Centos uninstall application
- Websphere: Stop Server and Uninstall Application
- Iphone Change Application Name
- Localize iPhone Application Name
- Get Application Display Name
- upvar, pass by name
- find program by name.
- Call By Name
- Color by Name
- get pid by name
- scala by-name parameter
- get by name
- You must perform a full uninstall of the application
- 小米手机 Do you want to uninstall the existing application?
- C# application
- Call by Name, Call by Value
- UNIX-Perl-Uninstall
- FTP 上传文件 命令
- C# create Windows event logs by EventLog.
- Removing reports / report folder by SSRS (SQL SERVER REPORTING SERVICE)
- Create SQL server job with SQL SERVER.
- C# UnInstall Application by name.
- C# Get a folder or file list which finished sequence line. 直接得到 排序后 的 文件列表
- 当前 IT 行业是否同样适用刘易斯拐点的思考.
- Java Ant - SQLExec .SQL File
- Eclipse User Defined Code Statement Block.
- Change Silk Recording type like multi-tag or only for Windows ID
- FTP 文件 循环 Copy
- SQL Profiler Practice.
- Get all tables list form current DB.