杀死进程无法正常工作

时间:2011-12-14 16:50:42

标签: c# process kill

我正在尝试测试以下代码段。

        static void StartAndKill()
    {
        Process ieProc = Process.Start("iexplore.exe", "www.apress.com");
        Console.WriteLine("--> Hit enter to kill {0}\t", ieProc.ProcessName);
        Console.ReadLine();
        try
        {
            Console.WriteLine(ieProc.Id);
            ieProc.Kill();

        }
        catch (Exception exception)
        {
            Console.WriteLine(exception.Message);
        }
    }

这应该会杀死Internet Explorer窗口并将其关闭。相反,我得到一个例外:

Cannot process request because the process (7256) has exited.

这种行为的合理解释是什么?

2 个答案:

答案 0 :(得分:2)

如果iexplore进程已在运行(检查任务管理器),那么Process.Start可能会使用现有进程 - 但您获取的进程ID不是针对此现有进程,而是启动然后退出的虚拟进程。您可以枚举现有的iexplore进程并检查其标题以找到正确的标题,然后获取其进程ID并将其删除。

答案 1 :(得分:1)

错误消息具有误导性。这个过程没有被杀死的真正原因是Windows 7上的管理权限不是默认的。如果我使用“以管理员身份运行”打开命令提示符,则代码执行它应该执行的操作。我将继续关闭这个问题。

感谢所有回复的人。