Complementando la respuesta de Fabricio:
a) Saber cuantos forms hay creados (que no necesariamente visibles):
nCount = _Screen.FormCount
b) Recorrer todos los forms creados:
LOCAL oForm
FOR EACH oForm IN _Screen.Forms
...
ENDFOR
c) Contar la cantidad de forms visibles (ya que "activo" solo puede haber uno)
LOCAL nVisibles, oForm
nVisible = 0
FOR EACH oForm IN _Screen.Forms
IF oForm.Visible
nVisibles = nVisibles + 1
ENDIF
ENDFOR
d) Determinar cual es el form activo (si es que hay uno)
IF ISNULL(_Screen.activeForm)
MESSAGEBOX("No hay un form activo")
RETURN
ENDIF
WITH _Screen.activeForm
...
ENDWITH
Saludos
Victor Espina