【发布时间】:2016-11-24 14:20:58
【问题描述】:
我需要的是在 Windows 8 中以编程方式杀死启动的 Metro 应用程序。
会不会只是一个简单的过程,我会写
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 命令:4588 主机:5820 csrss : 2144 csrss : 416 csrss : 480 部署管理服务:1756 粗细:796 dwm : 2852 探险家:1592 空闲:0 探索:5696 探索:5644 登录界面:2140 小学生:572 rdpclip:3540 收货人:1668 运行dll32:1432 SACM监视器:3344 SACSrv : 1888 搜索索引器:2312 发件人:968 服务:564 短信:312 线轴v:1340 sqlwriter:1000 服务器主机:1416 服务器主机:780 服务器主机:328 服务器主机:856 服务器主机:676 服务器主机:2576 服务器主机:2712 服务器主机:1376 服务器主机:832 服务器主机:1004 服务器主机:632 服务器主机:1608 系统:4 任务主机:6036 任务主机:3040 任务主机:1440 VSSVC : 2732 初始化:464 登录:524 登录:2416 WmiPrvSE : 168 WUDFHost : 1096
【问题讨论】:
-
IE(桌面/地铁)使用多个进程,确保你杀死了所有进程
-
感谢您的回答,请查看我对 Michael 的回复。
标签: c# .net windows-8 microsoft-metro