【问题标题】:How to programatically restart explorer.exe using C# [duplicate]如何使用 C# 以编程方式重新启动 explorer.exe [重复]
【发布时间】:2018-08-17 16:27:42
【问题描述】:

我一直在尝试重新启动 explorer.exe,以便我的其他隐藏图标的脚本可以生效。我试图通过我的 C# 程序执行命令提示符窗口来做到这一点:

/k taskkill /f /im explorer.exe
start explorer.exe

当我运行它的前半部分时,它的前半部分工作并且 explorer.exe 被杀死,我的屏幕是黑色的,除了已经打开的文件,但是当脚本的后半部分运行时,只有 windows 资源管理器(文件经理)开始。顺便说一句,如果我在常规终端上启动 cmd 但它不通过我的 C# 程序,则上述命令有效。我可以重新打开资源管理器的唯一方法是使用 ctl+alt+del 调出任务管理器并运行一个新任务“资源管理器”而不引用。如果您知道如何解决此问题,请告诉我。谢谢

【问题讨论】:

    标签: c# cmd explorer


    【解决方案1】:

    这样的事情应该可以解决问题:

    // find all the explorer processes and kill them
    Process[] explorer = Process.GetProcessesByName("explorer");
    foreach (Process process in explorer) {
        process.Kill();
    }
    
    // start a new explorer process
    Process.Start("explorer.exe");
    

    使用这种方法,我没有遇到需要在终止进程和重新启动之间等待的问题

    【讨论】:

      【解决方案2】:
      static void RestartExplorer()
          {
              string strCmdText;
              strCmdText = "/c taskkill /f /im explorer.exe";
      
              System.Diagnostics.Process.Start("cmd.exe", strCmdText);
              System.Threading.Thread.Sleep(500);
              Process.Start(Environment.SystemDirectory + "\\..\\explorer.exe");
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多