Мне нужно убить запущенное приложение Metro в Windows 8 программно.Как закрыть приложение метро программно из другого процесса?
Будет ли это быть просто простой процесс, я бы написал
Process.GetProcessById(processId).Kill()
или
var applicationProcess = Process.GetProcessById(processId);
applicationProcess.CloseMainWindow();
applicationProcess.Close();
, но они не работают в моем случае.
Я пробовал и эту функцию WinAPI для оканчивающихся процессов
[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool TerminateProcess(IntPtr hProcess, uint uExitCode);
Это фактически завершает процесс, и я могу видеть, что этот процесс не существует в диспетчере задач больше, но до сих пор я могу видеть приложение полуживой (IE на картинке):
Итак, я бегу из идей. Любая помощь?
ОБНОВЛЕНО:
Возможно мой список процессов будет какой-либо помощи.Вот он, прежде чем я убил что-нибудь:
audiodg: 3200 CMD: 4588 conhost: 5820 CSRSS: 2144 CSRSS: 416 CSRSS: 480 DeploymentManagerService: 1756 DWM: 796 DWM: 2852 проводник: 1592 вхолостую: 0 Iexplore: 5696 Iexplore: 5644 LogonUI: 2140 LSASS: 572 rdpclip: 3540 приемник: 1668 rundll32: 1432 SACMonitor: 3344 SACSrv: 1888 SearchIndexer: 2312 Отправитель: 968 услуги: 564 SMSs: 312 Spoolsv: 1340 SQLWriter: 1000 Svchost: 1416 Svchost: 780 Svchost: 328 Svchost: 856 Svchost: 676 Svchost: 2576 Svchost: 2712 Svchost: 1376 Svchost: 832 Svchost: 1004 Svchost: 632 Svchost: 1608 система: 4 taskhost: 6036 taskhost: 3040 taskhostex: 1440 VSSVC: 2732 wininit: 464 Winlogon: 524 Winlogon: 2416 Wmiprvse: 168 WUDFHost: 1096
IE (настольный/метро) использует несколько процессов, убедитесь, что вы убили всех из них – magicandre1981
Спасибо за ответ и, пожалуйста, посмотрите на мой ответ на Майкла. – user1793358