System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();
info.FileName = @"d:\1\uninst.exe";
info.Domain = "OK";
info.UseShellExecute = true;
System.Diagnostics.Process pro = null;
pro = System.Diagnostics.Process.Start(info);
pro.WaitForExit(3600000);//1小时
MessageBox.Show("");
一般的安装程序或者应用程序都能阻塞,就是卸载程序无法阻塞,不知道为什么
info.FileName = @"d:\1\uninst.exe";
info.Domain = "OK";
info.UseShellExecute = true;
System.Diagnostics.Process pro = null;
pro = System.Diagnostics.Process.Start(info);
pro.WaitForExit(3600000);//1小时
MessageBox.Show("");
一般的安装程序或者应用程序都能阻塞,就是卸载程序无法阻塞,不知道为什么
{
RegistryKey localMachine = Registry.LocalMachine;
string productsRoot = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products";
RegistryKey products = localMachine.OpenSubKey(productsRoot);
string[] productFolders = products.GetSubKeyNames(); foreach (string p in productFolders)
{
RegistryKey installProperties = products.OpenSubKey(p + @"\InstallProperties");
if (installProperties != null)
{
string displayName = (string)installProperties.GetValue("DisplayName");
if ((displayName != null) && (displayName.Contains(productDisplayName)))
{
string uninstallCommand = (string)installProperties.GetValue("UninstallString");
return uninstallCommand;
}
}
} return "";
}注册表里取出的是这样的字符串: MsiExec.exe /X{90120000-0021-0409-0000-0000000FF1CE}MsiExec.exe的/quiet参数,没有用户参与。代码来自:
https://sites.google.com/site/msdevnote/home/programmatically-uninstall-programs-with-c