econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 2008
-
2 nov. 2004 à 22:59
thierrydelepine
Messages postés521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 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.
thierrydelepine
Messages postés521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 20086 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
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és106Date d'inscriptionlundi 20 septembre 2004StatutMembreDernière intervention23 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és521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 20086 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és106Date d'inscriptionlundi 20 septembre 2004StatutMembreDernière intervention23 janvier 2010 16 nov. 2005 à 17:15
en tout cas 10 car ca m'a bien servi ;)
SgtKabukinan
Messages postés106Date d'inscriptionlundi 20 septembre 2004StatutMembreDernière intervention23 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és521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 20086 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és4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 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.
9 avril 2006 à 22:43
Il existe certainement sur ce site des exemples d'utilisation de cette API ou sur www.allapi.com
7 avril 2006 à 18:19
17 nov. 2005 à 09:55
J'avais pas vu l'utilité de ta source dans ce sens la.
17 nov. 2005 à 09:48
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.
16 nov. 2005 à 17:15
16 nov. 2005 à 17:14
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 ;)
2 nov. 2004 à 23:19
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
2 nov. 2004 à 22:59