Вы можете использовать System.Diagnostics.Process, чтобы запустить / найти процессы, которые вы смотрите.В зависимости от приложений, которые вы смотрите, вы можете использовать что-то вроде этого:
For Each proc As Process In System.Diagnostics.Process.GetProcesses
If proc.ProcessName = "notepad" Then
If proc.Responding = False Then
' attempt to kill the process
proc.Kill()
' try to start it again
System.Diagnostics.Process.Start(proc.StartInfo)
End If
End If
Next
Определить, «зависло» ли приложение, не всегда понятно.Это может быть просто занято чем-то.Также для Process.Responding требуется MainWindow.
Это очень простой пример, но я надеюсь, что он укажет вам правильное направление.