Enumchildwindows comparaison

trainkill Messages postés 29 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 24 juillet 2007 - 19 avril 2006 à 16:26
trainkill Messages postés 29 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 24 juillet 2007 - 20 avril 2006 à 13:14
Bonjour,

J'utilise les fonctions API suivantes dans mon application pour recuperer les libellés des champs dans une fenêtre d'une appli externe :

findwindow, sendmessage, enumchildwindows etc ...

J'arrive à parcourir tous les champs de cette fenêtre, mais je n'arrive pas à comparer ceux-ci avec des strings. Voici la fonction EnumChildProc que j'utilise :



Private
Function EnumChildProc(
ByVal hWnd
As
Integer,
ByVal lParam
As
Integer)
As
Integer
Dim Length
As
Integer = SendMessage(hWnd, WM_GETTEXTLENGTH, 0, 0)

Dim sURL
As
String =
New
String(" "c, Length + 1)

SendMessage(hWnd, WM_GETTEXT, sURL.Length, sURL)

If sURL = Search
Then ' ICI retourne toujours false, dans tous les cas !
Found =
True
return
False
End
If

Return
True
End
Function

Je me demande où est le problème ...

3 réponses

zavier666 Messages postés 266 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 30 avril 2009 1
19 avril 2006 à 20:08
Search ne devrait-il pas être "Search" puisqu'il s'agit d'une string????

APi @ la Loupe:
http://xav.prog.power.free.fr
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 avril 2006 à 00:12
Regarde d'abord si le retour de WM_GETTEXTLENGTH correspond à ce que tu attends, inutile de faire tout le traitement sinon.

Ensuite WM_GETTEXT remplit ton buffer sURL au format C, faut peut-être que tu isoles la partie de la chaine sans le zéro final avant de comparer, à tester.

ciao...
BruNews, MVP VC++
0
trainkill Messages postés 29 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 24 juillet 2007
20 avril 2006 à 13:14
C'est bon j'ai trouvé à quoi était du le problème :

Il fallait que je mette

Dim sURL
As
String =
New
String("", Length)

et ensuite


SendMessage(hWnd, WM_GETTEXT, iLength + 1, sURL)

voilà merci de votre aide
0
Rejoignez-nous