[R] Détection du changement de focus avec GUIRegisterMsg
Posté : jeu. 27 mars 2014 04:58
Bonjour à tous,
Comme le titre du topic le dit, je cherchais à détecter les changements de focus via GUIRegisterMsg (pour pouvoir effectuer un redraw rapide à chaque perte de focus pour une autre appli, car certaines applis en overlay effacent les jolis dessins qui s'affichent sur mon script). Je suis tombé sur ce script d'aide pour la fonction "_WinAPI_RegisterShellHookWindow" :Mais visiblement, ça ne fonctionne pas (et sur le forum anglophone, qq1 a déterré un topic de 2009 à cause de ce bug). La fonction WM_SHELLHOOK est apparemment appelée au bon moment (deux fois par contre, sans doute une fois pour le unfocus, et une autre pour le nouveau focus), mais $HSHELL_WINDOWACTIVATED n'est pas correctement géré.
Quelqu'un saurait comment pallier le problème?
Merci d'avance, et à bientôt !
PS: GUIRegisterMsg indispensable, ne pouvant pas me permettre un truc du styleCar je ne pourrai pas mettre ce bout de code entre chaque ligne d'une procédure plus ou moins longue (copie de fichiers).
Comme le titre du topic le dit, je cherchais à détecter les changements de focus via GUIRegisterMsg (pour pouvoir effectuer un redraw rapide à chaque perte de focus pour une autre appli, car certaines applis en overlay effacent les jolis dessins qui s'affichent sur mon script). Je suis tombé sur ce script d'aide pour la fonction "_WinAPI_RegisterShellHookWindow" :
► Afficher le texte_WinAPI_RegisterShellHookWindow
Quelqu'un saurait comment pallier le problème?
Merci d'avance, et à bientôt !
PS: GUIRegisterMsg indispensable, ne pouvant pas me permettre un truc du style
Code : Tout sélectionner
If $focus <> WinActive("[ACTIVE]") Then
$focus = WinActive("[ACTIVE]")
redraw_MAINGUI()
EndIf