Как остановить внешний исполняемый файл в VB.NET? - PullRequest
0 голосов
/ 08 февраля 2010

Я разрабатываю службу Windows в Visual Basic, ведь при запуске запускается * .exe. Это работает довольно хорошо. Теперь, как я могу остановить этот * .exe при остановке этой службы Windows? Мой код, как показано ниже:

Public Class MyWinService
Dim RetVal
Protected Overrides Sub OnStart(ByVal args() As String)
    EventLog.WriteEntry("MyService Started")

    RetVal = Shell("JobService.exe", 1)

End Sub

Protected Overrides Sub OnStop()
    EventLog.WriteEntry("MyService Stopped")
End Sub

Protected Overrides Sub OnPause()
    EventLog.WriteEntry("MyService Paused")
End Sub

Protected Overrides Sub OnContinue()
    EventLog.WriteEntry("MyService Resumed")
End Sub

Protected Overrides Sub OnCustomCommand(ByVal command As Integer)
    If command = 200 Then
        EventLog.WriteEntry("Custom Command 200 invoked")
    ElseIf command = 210 Then
        EventLog.WriteEntry("Custom Command 210 invoked")
    End If
End Sub

Private Sub Process1_Exited(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub
End Class

1 Ответ

2 голосов
/ 08 февраля 2010

Используйте метод Process.Kill. Это предполагает, что у вас есть дескриптор процесса из Process.Start или что вы получили его каким-либо другим способом.

Поскольку у вас уже есть идентификатор процесса из команды Shell, вы можете получить процесс:

Dim myProcess = Process.GetProcessById(RetVal)

Тогда убей его:

myProcess.Kill()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...