我想要做的是杀死explorer.exe主进程(这将导致以编程方式杀死Windows gui,然后再次打开gui。我可以通过手动杀死然后通过taskmanager启动进程来实现这一点,但是我无法弄清楚如何从wpf visual C#程序中杀死主浏览器进程。此外,我尝试从taskmanager中杀死它,然后再次启动windows gui:
var proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "explorer.exe",
Arguments = "",
UseShellExecute = true,
CreateNoWindow = true
}
};
proc.Start();
但它只启动一个新的资源管理器窗口,而不是windows gui。有人可以帮我杀死win gui并用一些代码再次启动它吗?
答案 0 :(得分:2)
您可以使用以下命令获取进程:
var explorerProcesses = Process.GetProcessesByName("explorer");
然后你可以循环并杀死它们:
foreach(var process in explorerProcesses)
{
process.Kill()
}
您的程序可能需要以管理员身份运行以杀死资源管理器,我不确定。
答案 1 :(得分:0)
我终于设法找到解决方案:通过获取进程并使用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();