Bonjour,
J'ai développé une appli non fenêtrée sur un pc industriel sans clavier ni souris mais dont l'écran est équipée d'une dalle tactile. Cette appli a maintenant 5 ans et depuis peu, il arrive qu'elle perde le focus. Je m'explique, de temps en temps, il semble qu'un processus sans IHM prenne le focus. Mon appli est toujours visible, mais la dalle tactile ne semble plus lui fournir de clic. La flèche de la souris se déplace pourtant correctement à l'endroit cliqué. Le simple fait de connecter un clavier et de générer un ALT-TAB permet de tout remettre en ordre, ce qui me fait penser que mon appli fonctionne normalement.
Il y a effectivment sur le PC un processus qui tourne en tâche de fond et dont l'IHM est débrayée via une clé de registre. Je pense que c'est ce processus qui génère le problème.
J'ai essayé d'implémenter dans mon Mainframe l'événement ON_WM_KILLFOCUS, mais il n'est généré que si c'est une autre fenêtre interne à mon appli qui le récupère.
La méthode API GetForegroundWindow() détecte bien que mon appli n'a plus le focus, mais SetForegroundWindow échoue et émet un flash sur mon appli dans la barre des tâches, si la fenêtre qui a pris le focus n'est pas interne à l'appli .
Est-ce que quelqu'un sait comment forcer ou remettre une appli au premier plan?
Mon appli est dévelloppée en Visual C++ 6.0 et tourne indépendemment sur W2000 sp4 ou XP sp2.
Partager