Ich versuche, ein einfaches Programm zu schreiben, das alle 5 Sekunden überprüfen würde, ob ein bestimmter Prozess läuft und wenn es ist, dann töte es. Das Programm sollte im Hintergrund laufen und bei jedem Start der Maschine gestartet werden. Seine in VB geschrieben Prozess so weit:Nach Prozess suchen und dann töten, sobald gefunden und über
Module Module1
Private Declare Auto Function ShowWindow Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Boolean
Private Declare Auto Function GetConsoleWindow Lib "kernel32.dll"() As IntPtr
Private Const SW_HIDE As Integer = 0
Sub Main()
eh:
Dim hWndConsole As IntPtr
hWndConsole = GetConsoleWindow()
ShowWindow(hWndConsole, SW_HIDE)
For Each proc As Process In Process.GetProcessesByName("hl") 'hl is the process to look for
proc.WaitForExit(5000) 'wait up to 5 seconds.
proc.Kill() 'force the process to exit.
Next proc
GoTo eh
Threading.Thread.Sleep(5000) 'Sleep for 5 sec and start over
End Sub
End Module
Aber das Problem ist, zeigt es Konsolenfenster jedes Mal beginnt es und stürzt auch nach den erfassten Prozess tötet
Thank yo für Antwort. Ich änderte, wie Sie vorgeschlagen haben, aber es stürzt immer noch ab, nachdem es den Prozess beendet hat und wenn der Prozess vom Benutzer neu gestartet werden sollte. – degaro
Also .. zuerst einmal 'Try Catch' verwenden, dann können Sie Fehler besser behandeln. Und ich schlage vor, dass Sie diesen Code in einem separaten Thread ausführen. Nachdem Sie Ihren Code mit dem Try bearbeiten, lassen Sie mich die Fehlermeldung wissen. – Tyler