【问题标题】:Uninstall program using System.Diagnostic.Process and its UninstallString in C#在 C# 中使用 System.Diagnostic.Process 及其 UninstallString 卸载程序
【发布时间】:2013-01-21 10:59:12
【问题描述】:

我正在使用this Code (Tried this too) 在我的注册表中使用我的卸载字符串卸载程序,但第一个链接的代码中有一些错误。 我正在尝试修复它,但我无法弄清楚文件名中的内容以及参数中的内容。我的 UninstalString 是:

rundll32.exe dfshim.dll,ShArpMaintain ItemMan.Client.application, Culture=neutral, PublicKeyToken=4f1069eb693dc232, processorArchitecture=msil

注册表中的目录是

CurrentUser\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\9e648bbdf5bc3053

我遇到问题的部分:

            System.Diagnostics.Process FProcess = new System.Diagnostics.Process();
            FProcess.StartInfo.FileName = "rundll32.exe"; (Dont know if this is right though, but have tried various ways to write the FileName...)
            FProcess.StartInfo.Arguments = "9e648bbdf5bc3053";
            FProcess.StartInfo.UseShellExecute = false;
            FProcess.Start();
            FProcess.WaitForExit();

有了这个位,什么都不会发生。我尝试的所有其他方法都会引发错误。你将如何剪切/使用你的 uninstalString 来卸载该程序

【问题讨论】:

    标签: c# registry uninstallation uninstallstring


    【解决方案1】:

    卸载字符串就是全部,第一个可执行文件之后的所有内容都是参数,因此您需要执行以下操作:

    var start_info = new StartInfo() {
        FileName = "rundll32.exe",
        Arguments = "dfshim.dll,ShArpMaintain ItemMan.Client.application, Culture=neutral, PublicKeyToken=4f1069eb693dc232, processorArchitecture=msil",
        UseShellExecute = false
    };
    
    Process process = new Process(start_info);
    
    process.Start();
    process.WaitForExit();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 2017-08-09
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      相关资源
      最近更新 更多