Kill Prozess, und jedes Kind-Prozesse eröffnet, die von der übergeordneten Prozess ("TaskKill /F /T' - Befehl)
Habe ich ein SFX WinRAR
autoxtraible-Datei, die ausgeführt wird eine Textdatei mit notepad.exe Prozess, und die SFX-Datei wartet, bis erhalten eine exit-Code des notepad.exe beenden Sie die SFX-Ausführung.
Ich würde gerne eine treekill
, kill alle Prozesse, offenen durch die SFX-Datei, oder in anderen Worten, möchte ich zum reproduzieren dieses Batch-Befehl, in .NET
:
/t : Gibt an, beenden aller child-Prozesse, zusammen mit den
übergeordneter Prozess, allgemein bekannt als ein Baum töten.
Taskkill /F /T /IM "SFX file.exe"
Töten einen Prozess, den ich hierzu in VBNET
:
''' <summary>
''' Kill a process specifying the process name.
''' </summary>
Private Sub Kill_Process(ByVal ProcessName As String,
Optional ByVal Recursive As Boolean = True)
ProcessName = If(ProcessName.EndsWith(".exe", StringComparison.InvariantCultureIgnoreCase),
ProcessName.Substring(0, ProcessName.LastIndexOf(".")),
ProcessName)
For Each p As Process In Process.GetProcessesByName(ProcessName)
p.Kill()
If Not Recursive Then Exit For
Next p
End Sub
Nun, In C#
oder VBNET
wie konnte ich identifizieren, die Kind-Prozesse eröffnet, die von der SFX zu töten Sie alle auf einmal?
- Wie this?
- Danke so sehr für die info, der sub erwartet eine pid, ich bin versucht zu retuschieren es zu erwarten, dass ein Prozess-Namen, ich denke, dass ich es von mir selbst, ohne Hilfe, vielleicht, dass code, der mein Leben gerettet, danke nochmal
- Sie sollten in der Lage zu zwicken die WMI-Abfrage zu filtern, die durch Prozess-Namen.
- Es hat funktioniert, vielen Dank
- Ich bin froh, Sie waren in der Lage zu Sortieren Sie es aus. 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige Ideen:
Den beiden Ansätzen verwendet werden ManagementObjectSearcher (WMI) und WinAPI.
Ich möchte nur zu teilen die VBNET änderung, die ich habe, haben zu diesem C# - Lösung Kill Prozess tree programmgesteuert in C#