RE:Identificar programas abiertos
Hola! Podes utilizar para eso la API FindWindows, para que veas el funcionamiento te dejo un ejemplo. Lo que hace es determinar si la calaculadora de windows se encuentra abierta
Para probarlo en un form agrega un boton y pega el siguiente codigo en la seccion General del form:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long
Private Sub Command1_Click()
Dim Ventana As Long
Ventana = FindWindow(vbNullString, "Calculadora")
If Ventana = 0 Then
MsgBox ("La Calculadora no esta abierta")
Else
MsgBox ("La Calculadora ya esta abierta")
End If
End Sub
Obviamante tenes que cambiar "Calculadora" por el nombre del programa que queres cerrar, es decir, lo que aparece en la barra de titulos de la ventana del programa en cuestion.
Espero te sirva.Saludos