【问题标题】:Need help forcefully terminating a process in vb.net需要帮助强制终止 vb.net 中的进程
【发布时间】:2014-04-09 23:54:05
【问题描述】:

从 vb.net,我需要终止一个经常挂起的进程。我通常使用 process.kill,它适用于大多数进程,但不适用于挂起的进程。如果我使用 taskkill /im process.exe 它也不会终止。但是如果我使用 taskkill /im process.exe /f,它会正常终止。所以问题是,taskkill /f 的 vb.net 等价物是什么?

谢谢。

【问题讨论】:

标签: .net vb.net


【解决方案1】:

您需要使用您的参数和文件名创建一个 ProcessStartInfo,在本例中为“taskkill”,然后您可以启动该进程,它将运行 taskkill 命令。这是一个子程序,您可以调用它来完成它。您需要将 Imports System.Diagnostics 放在 Class 文件的顶部。

Imports System.Diagnostics
Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        KillHungProcess("Notepad.exe") 'Put your process name here
    End Sub
    Public Sub KillHungProcess(processName As String)
        Dim psi As ProcessStartInfo = New ProcessStartInfo
        psi.Arguments = "/im " & processName & " /f"
        psi.FileName = "taskkill"
        Dim p As Process = New Process()
        p.StartInfo = psi
        p.Start()
    End Sub
End Class

【讨论】:

  • 我想过,但是由于XP Home没有taskkill,我宁愿使用.net或API来完成它。我们仍然有很多客户在使用 XP,所以想使用 taskkill 作为最后的手段。知道如何使用 API 或 .net 来实现吗?
  • 看看这个 SO 问题接受的答案是否有帮助 stackoverflow.com/a/7956651/479512
  • 我想有一种使用 vb.net 的简单方法,但由于没有,我将只通过 process.start 使用 taskkill,而不用担心 XP Home。
【解决方案2】:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Shell("taskkill /F /IM process-name-here.exe /T", 0)

End Sub

【讨论】:

    猜你喜欢
    • 2013-04-24
    • 2011-04-03
    • 2021-10-27
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    相关资源
    最近更新 更多