Problème avec FindWindowEx [Résolu]

cs_youyou40 58 Messages postés lundi 20 décembre 2004Date d'inscription 3 janvier 2017 Dernière intervention - 21 avril 2007 à 23:59 - Dernière réponse : cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention
- 22 avril 2007 à 09:25
Bonjour
Je n'arrive pas à utiliser la fonction FindWindowEx : elle me renvoie toujours 0.
Par exemple j'ai fait un essai avec NotePad  et la fenêtre enfant "Police"

Private Sub Essai()
Dim tWnd As Long, bWnd As Long
    tWnd = FindWindow(vbNullString, "Sans titre - Bloc-notes")
    bWnd = FindWindowEx(tWnd, 0&, vbNullString, "Police")
    MsgBox tWnd & " - " & Hex(tWnd) & vbCrLf & bWnd & " - " &  Hex(bWnd)
End Sub

J'ai essayé en mettant la classe de la fenêtre child au lieu de mettre son titre, j'ai essayé les deux aussi
J'ai vérifié avec un autre prog (WinID) que les paramètres étaient bons (les titres de fenêtre et les classes)
J'obtiens le bon handle pour la fenêtre parent puis bWnd est égal à 0 .......

Où se trouve mon erreur ??? mes erreurs ????? 
Merci
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 22 avril 2007 à 00:11
3
Merci
Salut,

Chez moi, la bôite de dialogue police n'est pas un enfant de notepad (spy++).





__________
 Kenji

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de Charles Racaud
cs_youyou40 58 Messages postés lundi 20 décembre 2004Date d'inscription 3 janvier 2017 Dernière intervention - 22 avril 2007 à 01:03
0
Merci
Salut
Merci de ta réponse rapide.

Effectivement, j'ai téléchargé SPY++ et dans l'arborescence , la boîte de dialogue Police apparaît au 1er niveau ,juste sous le Desktop mais si je fais clic droit dessus puis propriété , dans l'onglet Windows , il est écrit  " Parent Window"   000603B6 "qui est, à ce moment-là,  le handle du Bloc-notes.

Je suis perdu ; pourquoi dans ces boîtes de dialogue Police est un enfant du bloc-note (comme indiqué dans WinID ) alors que dans l'arborescence non ? Je débute et je dois peut-être (certainement) tout mélanger .... L'arborescence n'indique pas à cette relation parent-enfant?
Commenter la réponse de cs_youyou40
cs_youyou40 58 Messages postés lundi 20 décembre 2004Date d'inscription 3 janvier 2017 Dernière intervention - 22 avril 2007 à 01:16
0
Merci
Merci encore

J'arrive maintenant à récupérer les handles de plusieurs fenêtres que je ne parvenais pas à obtenir , en les traitant avec FindWindowEx( 0& , 0& ; vbNullString , "nom de la fenêtre" ) ou même avec FindWindow.

Mais pourquoi dans WinID et dans Spy++ il est dit que le parent est une autre fenêtre (et pas le bureau) ???
Commenter la réponse de cs_youyou40
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 22 avril 2007 à 09:25
0
Merci
J'avance une explication sans trop savoir si c'est juste.

La fenetre Police de Notepad semble effectivement etre une feuille fille. Mais c'est une ressource du système d'exploitation commune à plusieurs applications. Un peu l'équivalent d'une api windows mais pour une boite de dialogue.

Dans ce cas il est normal que tu l'as voie comme une fenetre autonome dans Spy++. Ceci dit, ce n'est tout de même pas une application indépendante, elle ne peut pas etre executé seule, elle doit etre lancé par (attachée à) un autre process.

Dans le cas présent,  la relation entre les 2 fenetres n'est pas une relation Parent/enfant comme on connais avec les feuilles mdi.
L'id présent dans le paramètre Parent n'est pas l'ID du process parent, mais l'ID du process initiateur de la relation.
En d'autre terme, la fenetre ne fait pas partie de l'espace d'execution du process (elle est indépendante) mais celui-ci en est tout de même propriétaire.

JE pense que mes explications ne sont pas très claire, mais c'est difficile d'expliquer quand soi-même, on ne maitrise pas tout le méchanisme.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.