Tout d'abord merci à toi christian de tes réponses.
Je tiens à préciser que malgrés le "bas niveau" de mes questions, je fouine
dans le msdn avant de poster ici. Le site étant en anglais et un brin
"touffu" je ne trouve pas toujours ce que je souhaite. (Sur google on trouve
pas beaucoup plus de choses...)
Probléme :
Comment faire pour trouver une fenêtre précise dont on ne connait pas le nom
mais dont on connait une partie du titre.
Exemple : je veux trouver un site de classe name CN ayant comme mot dans son
titre "nom".(une fenêtre de titre "fenêtre ayant un nom" répondra au
critère)
J'arrive à récupérer le handle des fenêtres de classe CN grace à
FindWindow(CN,NULL), j'arrive à en extraire le titre grâce à
GetWindowText(hdl,buffer,taille_max) et à vérifié si elle répond au critère.
Sauf que quand la fenêtre ne répond pas au critaire et que je veux tester
une autre fenêtre j'utilise de nouveau FindWindow(CN,NULL) et je retombe
donc sur la même fenêtre.
Grace à quelle fonction puis je "boucler" sur toutes les fenêtres d'une
class name donnée?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sylvain SF
pipo wrote on 31/07/2008 22:55:
Comment faire pour trouver une fenêtre précise dont on ne connait pas le nom mais dont on connait une partie du titre.
J'arrive à récupérer le handle des fenêtres de classe CN grace à FindWindow(CN,NULL), j'arrive à en extraire le titre grâce à GetWindowText(hdl,buffer,taille_max) et à vérifié si elle répond au critère. Sauf que quand la fenêtre ne répond pas au critaire et que je veux tester une autre fenêtre j'utilise de nouveau FindWindow(CN,NULL) et je retombe donc sur la même fenêtre.
Grace à quelle fonction puis je "boucler" sur toutes les fenêtres d'une class name donnée?
FindWindowEx
HWND parent = null; // pour le bureau, ou autre si besoin HWND child = null; // pour commencer avec la 1ière
for (;;) child = FindWindowEx(parent, child, CN, null); if (child matches criteria){ break; } if (child == null) // no more break; }
ou encore EnumWindows où ta callback (WNDENUMPROC) ressemblera à ton test actuel.
Sylvain.
pipo wrote on 31/07/2008 22:55:
Comment faire pour trouver une fenêtre précise dont on ne connait pas le nom
mais dont on connait une partie du titre.
J'arrive à récupérer le handle des fenêtres de classe CN grace à
FindWindow(CN,NULL), j'arrive à en extraire le titre grâce à
GetWindowText(hdl,buffer,taille_max) et à vérifié si elle répond au critère.
Sauf que quand la fenêtre ne répond pas au critaire et que je veux tester
une autre fenêtre j'utilise de nouveau FindWindow(CN,NULL) et je retombe
donc sur la même fenêtre.
Grace à quelle fonction puis je "boucler" sur toutes les fenêtres d'une
class name donnée?
FindWindowEx
HWND parent = null; // pour le bureau, ou autre si besoin
HWND child = null; // pour commencer avec la 1ière
for (;;)
child = FindWindowEx(parent, child, CN, null);
if (child matches criteria){
break;
}
if (child == null) // no more
break;
}
ou encore
EnumWindows où ta callback (WNDENUMPROC) ressemblera à ton test actuel.
Comment faire pour trouver une fenêtre précise dont on ne connait pas le nom mais dont on connait une partie du titre.
J'arrive à récupérer le handle des fenêtres de classe CN grace à FindWindow(CN,NULL), j'arrive à en extraire le titre grâce à GetWindowText(hdl,buffer,taille_max) et à vérifié si elle répond au critère. Sauf que quand la fenêtre ne répond pas au critaire et que je veux tester une autre fenêtre j'utilise de nouveau FindWindow(CN,NULL) et je retombe donc sur la même fenêtre.
Grace à quelle fonction puis je "boucler" sur toutes les fenêtres d'une class name donnée?
FindWindowEx
HWND parent = null; // pour le bureau, ou autre si besoin HWND child = null; // pour commencer avec la 1ière
for (;;) child = FindWindowEx(parent, child, CN, null); if (child matches criteria){ break; } if (child == null) // no more break; }
ou encore EnumWindows où ta callback (WNDENUMPROC) ressemblera à ton test actuel.