WPF:杀死 Windows GUI (explorer.exe) 然后恢复它

WPF: Kill Windows GUI (explorer.exe) and then restore it

我想要做的是终止 explorer.exe 主进程(这将导致以编程方式终止 Windows gui,然后再次打开 gui。我可以通过手动终止和然后通过 taskmanager 启动进程,但我无法弄清楚如何从 wpf 可视化 C# 程序中终止主资源管理器进程。此外,我尝试从 taskmanager 中终止它,然后通过以下方式再次启动 windows gui:

var proc = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName = "explorer.exe",
                    Arguments = "",
                    UseShellExecute = true,
                    CreateNoWindow = true
                }
            };
            proc.Start();

但它只会启动一个新的浏览器 window,而不是 windows gui。有人可以帮我杀死 win gui 并用一些代码重新启动它吗?

您可以使用以下方法按名称获取进程:

var explorerProcesses = Process.GetProcessesByName("explorer");

然后你就可以循环杀掉他们了:

foreach(var process in explorerProcesses)
{
    process.Kill()
}

您的程序可能需要 运行 作为管理员才能杀死资源管理器,我不确定。

我终于找到了解决方案:通过获取进程并使用 Kill() 仅重新启动 gui 来终止 explorer.exe。要完全关闭它,请使用

        var proc = new Process
        {
            StartInfo = new ProcessStartInfo
            {
                FileName = "taskkill.exe",
                Arguments = "/F /IM explorer.exe",
                UseShellExecute = true,
                CreateNoWindow = true
            }
        };
        proc.Start();