Olá,
Você terá que ter um código que fique verificando de tempo em tempo se determinado processo está aberto ou fechado.
Você pode fazer isso com um timer que fique constantemente verificando isso. Exemplo:
Timer Timer1 = new Timer()
Timer1.Interval = 1000
Timer1.Enabled = True
Timer1.Tick += Timer1_Tick;
Private Sub Timer1_Tick(ByVal Sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
If Process.GetProcessesByName("notepad").Length = 0 Then
MessagBox.Show("Processo Fechado")
End If
End Sub
OBS: Aqui está exibindo uma mensagem, mas poderia fazer outra tarefa.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MVP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco