La Web del Programador: Comunidad de Programadores
 
    Pregunta:  3623 - COMO SABER SI UN FORM ESTA ABIERTO
Autor:  chicho chicho
Hola, necesito saber como averiguar si un form esta abierto. Muchas Gracias.

  Respuesta:  Santiago Franchi
Debes usar la función API FindWindow.
Aqui va un ejemplo:

´Código para el Modulo
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
´Creamos una función que nos indicara si una aplicación determinada esta abierta
Function EsUnico(TituloVentana As String) As Long
´Buscar una ventana con una Caption determinado y devuelve 0 si no la encuentra, y sino, el manejador de la misma

Dim hWnd As Long
hWnd = FindWindow(vbNullString, TituloVentana)
EsUnico = IIf(hWnd = 0, 0, hWnd)
End Function

´Código para el procedimiento
Dim CadenaResultante As Long
CadenaResultante = EsUnico("Nombre_Caption_del_programa")
If CadenaResultante <> 0 Then Print "la aplicacion esta en uso"