Jeśli zabiję explorer.exe w ten sposób:
private static void KillExplorer()
{
var processes = Process.GetProcessesByName("explorer");
Console.Write("Killing Explorer... ");
foreach (var process in processes)
{
process.Kill();
process.WaitForExit();
}
Console.WriteLine("Done");
}
Natychmiast uruchamia się ponownie.
Ale jeśli użyję taskkill /F /IM explorer.exe
lub zabij go z menedżera zadań, nie uruchamia się ponownie.
Dlaczego? Co za różnica? Jak mogę zamknąć explorer.exe z kodu bez ponownego uruchamiania? Jasne, mogłem zadzwonić do taskkill z mojego kodu, ale miałem nadzieję na czystsze rozwiązanie ...
c#
.net-framework
process
windows-explorer
kill
Thomas Levesque
źródło
źródło
Odpowiedzi:
Nie mogę powiedzieć, że nie zdradziłem odpowiedzi. Wszystkie kredyty trafiają do morguth za jego stanowisko tutaj .
To, co zasugerował (i udowodni, że działa na moim Trybie Win7 i XP), polega na tym, że istnieje klucz rejestru, który zmusza powłokę do automatycznego ponownego uruchomienia. Używając następującego kodu, wyłączasz to.
źródło