Dovrebbe essere:
PRINT Application.ActiveWindow
anche se qualche volta non risponde, per esempio se la metti
dentro Form_Open.
E' sufficiente imporre preliminarmente l'apertura del Form e un breve Wait anche di un solo decimo di secondo:
Public Sub Form_Open()
Me.Show
Wait 0.1
Print Application.ActiveWindow.Name
End
oppure anche così:
Public Sub Form_Open()
Me.Show
Do
Wait 0.1
Loop Until Application.ActiveWindow.Name = "FMain"
Print Application.ActiveWindow.Name
End
Per la verifica di un Form o comunque di una finestra si può anche pensare ad una soluzione che ne accerti l'esistenza partendo dal suo nome visibile mediante la classe DesktopWindow. E' necessario attivare i componenti gb.desktop e gb.desktop.x11 .
Poniamo il caso che il Form da verificare si chiami "alibaba":
Public Sub Button1_Click()
Dim dw As DesktopWindow
' Di ogni finestra aperta sul desktop...
For Each dw In Desktop.Windows
'...cerca il nome. Se il nome visibile è uguale al nome del Form che cerchiamo,
' allora lo rileva:
If dw.VisibleName = "alibaba" then Print "Il Form è attivo !"
Next
End