2

我正在寻找一种在 WindowsCE 上使用 C# 按名称杀死进程的方法

.NET Compact Framework 没有 Process.GetProcessByName() 方法,它只有一个 .GetProcessById() 方法。

但我不知道如何找出正在运行的进程的进程 ID。

我在想我可以循环所有进程 id,但这太可怕了,因为我不知道进程 id 的最大数量。有人知道更好的方法吗?

        for (int i = 1; i < 40000; i++)
        {
            Process prs = Process.GetProcessById(i);

            if (prs.StartInfo.FileName == "MyExe.exe")
            {
                prs.Kill();
            }

            prs.Dispose();
        }

编辑:我找到了解决问题的方法。代码项目链接。 http://www.codeproject.com/Articles/36841/Compact-Framework-Process-class-that-supports-full

4

1 回答 1

6

我找到了一个代码项目类,它完全符合我的需要。生病发布它作为这个项目的答案。

http://www.codeproject.com/Articles/36841/Compact-Framework-Process-class-that-supports-full

        ProcessInfo[] list = ProcessCE.GetProcesses();

        foreach (ProcessInfo pinfo in list)
        {
            if (pinfo.FullPath.EndsWith("MyExe.exe"))
                pinfo.Kill();
        }
于 2013-05-13T14:39:38.703 回答