在我的代码中,当以下任一情况发生时,我需要调用declared in MSDNProcess.Kill()来抛出Win32Exception


相关过程无法终止。
该过程正在终止。
关联的过程是Win16可执行文件。


有时我确实面对Win32ExceptionAccess is denied消息且NativeErrorCode设置为5。MSDN说,当进程终止时调用Kill()时,会发生这种组合。其他两种情况没有详细记录。

因此,我需要合理地处理这种情况。当然我可以捕捉Win32Exception,但是我怎么知道为什么它被抛出了呢?如果该过程已经终止,并且在其他所有情况下都可能抛出异常,则我无需执行任何操作。

我如何识别和处理此特定情况?

最佳答案

使用命令行C#终止任务,例如Taskkill / F / IM ExeName.exe。
如果您没有许可杀死任务,那么比强行杀死也无济于事。

更多信息,请检查http://www.c-sharpcorner.com/UploadFile/8ea152/kill-process-from-the-command-prompt-in-windows-8/

这是一个如何在C#中运行命令行的示例
Run Command Prompt Commands

问候

关于c# - 当Process.Kill()由于进程正在终止而产生“访问被拒绝”时,我该如何处理?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18248389/

10-13 06:38