Accueil > Forum > > > > GetForegroundWindow() pas fiable ?!
GetForegroundWindow() pas fiable ?!
mercredi 9 mars 2011 à 08:00:13 |
GetForegroundWindow() pas fiable ?!

ArthurAuguste
|
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
|
|
mercredi 9 mars 2011 à 08:52:11 |
Re : GetForegroundWindow() pas fiable ?!
|
mercredi 9 mars 2011 à 15:00:20 |
Re : GetForegroundWindow() pas fiable ?!

ArthurAuguste
|
Ok merci, je pensais qu'une fois qu'on avait cliqué sur un onglet la fenêtre changeait puisque le titre n'était plus le même, j'avais d'ailleurs hésité à contrôler aussi le changement de titre, j'aurais dû le faire avant de poser la question. En fait, pour savoir s'il y a un changement finalement je teste maintenant d'abord le changement de fenêtre avec GetForegroundWindow(), s'il n'y a pas de changement de fenêtre je regarde si par hasard il n'y aurait pas quand même un changement de longueur de titre avec Longtitre=GetWindowText(activfen, Titrefen, Titrelong); Je sais bien que normalement j'aurais dû comparer le titre courant avec le précédent mais la probabilité pour deux longueurs de titres différents soient identiques est quand même assez faible et ça m'économise un buffer pour l'ancien titre.
|
|
vendredi 11 mars 2011 à 10:14:25 |
Re : GetForegroundWindow() pas fiable ?!
|
vendredi 11 mars 2011 à 15:12:44 |
Re : GetForegroundWindow() pas fiable ?!

ArthurAuguste
|
Salut,
J'avais déjà essayé le GetWindowEx() avec GW_HWNDFIRST et même d'autres GW_ mais ça ne marchait pas. La solution avec GetForegroundWindow() + Longtitre=GetWindowText(activfen, Titrefen, Titrelong); et vérification de la longueur du titre pour l'instant marche à 100%. La probabilité pour que deux longueurs de titre différents soient identiques est faible car pour que ça ne marche pas il faut deux conditions supplémentaires: 1.- que ce soit deux titres de fenêtres présentées en onglets, 2.- qu'ils soient consultés consécutivement. Disons que si le cas se produisait ça ne serait pas très grave et je pourrais si ça devenait gênant comparer les titres eux-mêmes, bien qu'on peut là ausssi imaginer avec une probabilité encore plus faible que deux titres consultés consécutivement sur des onglets soient strictement identiques bien que les fenêtres soient différentes.
Merci
|
|
Cette discussion est classée dans : fenêtre, fonctions, active, fenêtres, getforegroundwindow
Répondre à ce message
Sujets en rapport avec ce message
Problème de hook sur fenêtre enfant... [ par platon179 ]
Bonjour, j'ai un souci concernant les hooks sur les fenêtres enfant. En fait, ca marche très bien sur les fenêtres parent, mais il semble que la procé
Excel et window proc [ par sailline ]
Bonjour, Je n'arrive pas à récupérer l'adresse de la window procedure d'une fenetre Excel : j'obtient l'erreur 5 (Access is denied) pourtant Spy++ arr
Maîtriser le Z order des fenêtres [ par larion ]
Bonjour,Depuis un certain temps je cherche à maîtriser le "Z order" des fenêtres, mais sans succès.Imaginons que l'on a 10 fenêtres portant les titres
[WINDOWS C++]problème de fenêtre fille [ par brosse_adan ]
Bonjour à tous!Voilà mon problème : je veux avoir une fenêtre principale avec trois fenêtres filles. J'enregistre ma classe de fenêtre principale, mes
Récupérer un handle de fenêtre [ par tintin72 ]
Bonjour, Je programme une classe 'Splitter' qui a besoin de récupérer le handle des fenêtres filles pour les agencer dans la fenêtre hote. J'ai donc
fenêtre arrière plan [ par wanny ]
Bonjour.DAns une appli, j'ai une ou plusieurs fenêtre(s) graphique (classe fille de CView).Je clique sur un menu de la mainframe pour changer des para
Child Window [ par yerosnimus ]
bonjour,Je lis la documentation du site MSDN Library concernant la programmation windows à laquelle je ne connais rien et j'ai un peu de mal à m'en so
Gestion des messages windows pour des fenêtres - pointeurs de fonctions [ par neodelphi ]
Bonjour tout le monde Je suis en train de faire un programme qui utilise directX et qui doit créer une fenêtre windows. J'ai suivi les exemples que
!!! Pb crétation de fenêtre + thread !!! [ par yoyo269 ]
Mon problème est que je crée une ou plusieurs fenêtres à l'intérieur d'un thread dont je stocke le handle dans un tableau de static HWND déclaré en gl
Effet mosaique et MFC ! [ par flopflopp ]
Bonjour, Je travaille sur un projet de fenêtre MFC. La fenêtre principale ouvre 4 fenêtres qui sont des navigateurs internet. Seulement, ces fenêtres
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|