CONNAITRE LA FENTRE ACTIVE WINDOWS QUI A LE FOCUS

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 2 nov. 2004 à 22:59
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 - 9 avril 2006 à 22:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/27273-connaitre-la-fentre-active-windows-qui-a-le-focus

thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
9 avril 2006 à 22:43
Il te suffit de parcourir les fenetres enfants de la fenetre parent avec l'API EnumChildWindows Lib "user32" cela doit etre possible.
Il existe certainement sur ce site des exemples d'utilisation de cette API ou sur www.allapi.com
Utilisateur anonyme
7 avril 2006 à 18:19
Salut thierrydelepine ta source est nickel mais aller plus loin. J'aimerais récupérer la fenetre actif au sein d'un programme. GetForgroundWindow ne retourne que le nom de la fenetre mère, connais -tu le moyen de le faire ?
SgtKabukinan Messages postés 106 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 23 janvier 2010
17 nov. 2005 à 09:55
ah oui exact ;)
J'avais pas vu l'utilité de ta source dans ce sens la.
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
17 nov. 2005 à 09:48
Le code que tu as écrit est tres spécifique pusique il te permet de remonter le form actif de ton projet.
mon code est plus generaliste puisque il te remonte la fenetre active de n'importe quel programme actif sur le bureau Windows lorsque ton projet tourne.
Imagine un projet VB sans form juste un module avec Sub Main(), ton code ne remontera rien.
SgtKabukinan Messages postés 106 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 23 janvier 2010
16 nov. 2005 à 17:15
en tout cas 10 car ca m'a bien servi ;)
SgtKabukinan Messages postés 106 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 23 janvier 2010
16 nov. 2005 à 17:14
pour avoir la fenetre active il suffit de faire ceci :

Public Function GetActiveWindow() As Form
'----- définition des variables
Dim hwnd As Long
Dim tmpFrm As Form
'----- récupére le hwnd de la form active
hwnd = GetForegroundWindow
'----- parcours de toutes les forms du projet
For Each tmpFrm In Forms
If tmpFrm.hwnd hwnd Then Set GetActiveWindow tmpFrm: Exit For
Next
Set tmpFrm = Nothing
End Function

si y'a plus simple merci de me le dire ;)
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
2 nov. 2004 à 23:19
exact mais comme tu as le handle tu peux avoir toutes les infos que tu veux même le nom de l'exe correspondant à la fenêtre ou bien les fenêtres enfants de cette fenêtre, etc.....

le but c'est de savoir qu'elle est la fenetre active par l'APi GetForegroundWindow, après cela depend de qu'elle information tu as besoin pour ton appli.
Pour mon exemple j'ai juste voulu remonter la caption de la fenetre active.

en tout cas tu fais bien de le remarquer
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
2 nov. 2004 à 22:59
Petite précision : Ce qu'il te donne, c'est le texte qui est dans la barre de titre de la fenêtre active. Tu n'en déduis pas forcément le nom de l'appli.
Rejoignez-nous