De mon coté, j'ai une application qui doit faire la même chose, et pour ce faire, j'utilise une fonction qui me donne le nom de la fenêtre MDI qui a le focus:
Fc_FilleQuiALeFocus()
RET est une chaîne
i est un entier = 1
RET = MDIEnumèreFille(i)
TANTQUE RET <> ""
SI ExtraitChaîne(RET,2,"_",DepuisDébut) ~= Alias ALORS
SI FenEtat(RET) = Actif ALORS RENVOYER RET
FIN
i++
RET = MDIEnumèreFille(i)
FIN
RENVOYER Faux
La chaine Alias permet de filtrer les fenêtres mdi que j'ouvre. Les alias de mes fenêtres ont tous la forme : Alias+ "_1", Alias + "_2",... et Alias represente un type de fenêtres. Exemple Fichier_1, Fichier_2,...
Ensuite, vous appelez comme suit :
Fenetre est une chaîne = Fc_FilleQuiALeFocus()
SI Fenetre = "0" ALORS
Info("Pas de fenêtre ouverte")
SINON
ExécuteTraitement(Fenetre+".TraitementDésiré",trtProcédure)
FIN
//
Pour l'utiliser tous les jours, je peux vous dire que ça marche...