当前位置:编程学习 > C#/ASP.NET >>

请问下,为什么ProcessStartInfo启动一个卸载程序,无法进行阻塞呢?

  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("");
一般的安装程序或者应用程序都能阻塞,就是卸载程序无法阻塞,不知道为什么 --------------------编程问答-------------------- uninst.exe一瞬间就执行完毕了。它只是触发主程序去卸载,它自己又不进行卸载动作。 --------------------编程问答-------------------- 那么请问下,怎么才能实现启动卸载程序,并等待其结束,获取是否卸载成功或者失败呢? --------------------编程问答-------------------- 没人回答.. --------------------编程问答-------------------- 顶,高人出来啊 --------------------编程问答-------------------- 试一试执行从注册表里取得

 public string GetUninstallCommandFor(string productDisplayName)
        {
            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
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,