【发布时间】:2014-04-09 23:54:05
【问题描述】:
从 vb.net,我需要终止一个经常挂起的进程。我通常使用 process.kill,它适用于大多数进程,但不适用于挂起的进程。如果我使用 taskkill /im process.exe 它也不会终止。但是如果我使用 taskkill /im process.exe /f,它会正常终止。所以问题是,taskkill /f 的 vb.net 等价物是什么?
谢谢。
【问题讨论】:
从 vb.net,我需要终止一个经常挂起的进程。我通常使用 process.kill,它适用于大多数进程,但不适用于挂起的进程。如果我使用 taskkill /im process.exe 它也不会终止。但是如果我使用 taskkill /im process.exe /f,它会正常终止。所以问题是,taskkill /f 的 vb.net 等价物是什么?
谢谢。
【问题讨论】:
您需要使用您的参数和文件名创建一个 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
【讨论】:
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
【讨论】: