Mira este ejemplo que hize asi al voleo
Ahora si el nombre de la ventana es variable y no tiene nombre de clase, creo que podrias obtener si se esta ejecutando mediante los procesos activos (la api creo que es EnumProcess)
Código (vb) [Seleccionar]
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Sub Form_Load()
' La clase del Block de notas es Notepad, para saber la clase de un programa
' usa el programa Spy++ que viene con visual studio (hay otros tmb...)
If FindWindows(vbNullString, "notepad") > 0 Then
Msgbox "El block de notas esta abierto"
else
Msgbox "El block de notas esta cerrado"
End If
End Sub
Ahora si el nombre de la ventana es variable y no tiene nombre de clase, creo que podrias obtener si se esta ejecutando mediante los procesos activos (la api creo que es EnumProcess)
(no cambie nada de la configuracion de idioma, cuando se saca el hook, vuelve a funcionar todo normal)
y en caso de que sea imposible...) o se debe hacer de otra manera? (ver las teclas presionadas con un timer (
) o usar hotkeys?

ahi esta mejor