я написал эту маленькую функцию, которая ищет процесс по имени и убивает его: см ниже кодПочему explorer.exe автоматически перезапускается, когда я обрабатываю user.Kill() C#?
Process[] procList = Process.GetProcesses();
RegistryKey expKey = Registry.LocalMachine;
expKey = expKey.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true);
expKey.SetValue("AutoRestartShell", 0);
using (StreamWriter writer = new StreamWriter(@"C:\test\progtemp\Procs1.Txt", true))
{
int i = 0;
foreach (Process procs in procList)
{
writer.WriteLine(string.Format("Process Name {0} -- Process ID {1} -- Session ID {2}", procs.ProcessName, procs.Id, procs.SessionId));
if (procs.ProcessName == "explorer")
{
procList[i].Kill();
}
i++;
}
}
expKey.SetValue("AutoRestartShell", 1);
Мне интересно, почему, когда я говорю это, чтобы убить исследователь автоматически перезагружается. Как я могу сделать это так, чтобы он не перезапускался, и вам нужно войти в диспетчер задач и вручную перезапустить его?
Explorer.exe является то, что используется для обеспечения оболочки Windows. Microsoft приняла решение о том, что если он разбился, имеет смысл попытаться его перезапустить. –