Bonjour,
j'ai un souci survenant assez alléatoirement. J'ai un message d'erreur qui apparait lorsque je ferme une fenêtre se trouvant en arrière plan. Le message est : "Erreur Win32. Code : 1400.. Handle de fenêtre non valide".
Le problème est que l'environnement d'exécution est Citrix. Cette erreur ne survient pas sur un poste "standard". En fait l'application tourne sous Citrix et est affichée en mode fenêtre transparente (cela permet de donner l'impression que l'appli tourne en local).
Je voudrais essayer de contrer ce problème en essayant de forcer le focus à ma fenêtre que je ferme (donc une fenêtre en arrière plan). J'ai l'impression qu'il ne détecte pas bien la fenêtre sur laquelle je clique. JE voudrais lui forcer l'activation au clic sur la fenêtre (même si de premier abord ça paraît inutile, mais pour mon cas je crois que le problème vient de là).
J'ai essayé avec les procédure WMSysCommand et WMMouseActivate mais j'ai l'impression que je m'y prend mal.
J'ai trouvé un code pour attraper la fermeture d'une fenêtre et j'ai essayé de l'adapter à mon cas pour savoir l'activation de fenêtre
Donc que mettre à la place du SC_CLOSE ? et est-ce bien comme cela que je dois m'y prendre?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure Tfrm_DetReclam.WMMouseActivate(var Message: TWMSysCommand); begin // C'est ici que ce situe mon problème : Que mettre à la place de SC_CLOSE pour connaître la valeur d'une activation de fenêtre if (Message.CmdType and $FFF0 = SC_CLOSE) then DefWindowProc(frm_DetReclam.Handle, WM_MOUSEACTIVATE, SC_CLOSE, 0) else inherited; end;
Merci d'avance pour votre aide.
Partager