Précédent   Forum des professionnels en informatique > Systèmes > Windows > Windows XP
Windows XP Forum d'entraide Windows XP. Avant de poster : La F.A.Q Windows XP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2011, 21h42   #1
Membre du Club
 
Inscription : avril 2007
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 168
Points : 44
Points : 44
Par défaut GetForegroundWindow() pas fiable ?!

Bonjour,
Y a-t-il une autre méthode que : GetForegroundWindow() ou GetActiveWindow() pour connaître depuis une DLL la fenêtre qui est actuellement active sous Windows car je constate que ces deux fonctions ne donnent pas toujours le résultat prévu. En effet, si vous êtes par exemple sous Windows XP avec IE8 comme navigateur, tant que les fenêtres des sites consultés sont stockés en bas de l’écran dans la barre des tâches les deux fonctions donnent le résultat attendu dès que vous activez une de ces fenêtres. Par contre, si les fenêtres consultées n’apparaissent plus dans la barre des tâches parce que IE8 les a prises à son compte et les fait apparaître sous forme d’onglets en haut de l’écran, alors les deux fonctions ne détectent plus les changements quand vous activez une nouvelle fenêtre en passant d’un onglet à l’autre. Il y a même pire les deux fonctions ne détectent pas non plus le changement quand votre précédente fenêtre active était une de celles stockées en bas de l’écran et que vous activez maintenant une fenêtre quelconque de l’onglet !
Quelqu’un connaîtrait-il une méthode infaillible pour déterminer la fenêtre active quel que soit l’endroit où elle est stockée ?
Merci
Athur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 15h37   #2
Membre du Club
 
Inscription : avril 2007
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 168
Points : 44
Points : 44
Par défaut Fenêtre active de Windows (suite et fin)

Bonjour,
Bon j’ai la réponse à mon problème :
En fait lorsque que je dis que les fenêtres sont parfois présentées par IE8 en haut de l’écran sous forme d’onglets j’ai à moitié tort, car dans ce cas là la fenêtre IE8 est commune pour tous les onglets, chaque onglet n’est pas une fenêtre à part entière mais un contrôle dans la fenêtre commune ce qui explique pourquoi GetForegroundWindow() ne voit pas la différence. On remarquera cependant que lorsqu’on clique sur un des onglets le titre de la fenêtre commune change. Donc, pour savoir si l’utilisateur a changé de fenêtre, le test sur le changement de HWND ne suffit pas, dans le cas où le HWND n’a pas changé il faut aller voir en plus si par exemple le titre n’aurait pas, lui, changé en utilisant par exemple : Longtitre=GetWindowText(activfen, Titrefen, Titrelong);
Athur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 19h05   #3
Membre régulier
 
Homme
Inscription : décembre 2003
Messages : 220
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Cameroun

Informations forums :
Inscription : décembre 2003
Messages : 220
Points : 70
Points : 70
Bonjour,
J'ai le même problème.
peux-tu m'aider avec ta solution (un extrait de ton code ) ?

Merci bien.
zsoh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 05h12   #4
Membre régulier
 
Homme
Inscription : décembre 2003
Messages : 220
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Cameroun

Informations forums :
Inscription : décembre 2003
Messages : 220
Points : 70
Points : 70
Salut,
Je crée successivement deux handle, puis je vérifie si les deux handle sont différents ou si les noms sont dirrérents. Mais pour certaines applications, lorsqu'on change d'onglet, le nom de la fenetre ne change pas... les noms sont liés aux onglets. Exemple de Visual Studio Express 2010.
Que faire dans ce cas.
En passant, j'aimerai savoir si on peut créer une application de type service avec VS Express Edition..

Merci bien
zsoh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h59.


 
 
 
 
Partenaires

Hébergement Web