Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

obtenir le text qu'il y a dans une fenêtre?

5 réponses
Avatar
pipo
Bonjour,
Je souhaite obtenir le texte qui est dans une partie d'une fenêtre sachant
que je connais le handle de la fenêtre mère et le handle de la fenêtre fille
dont je veux extraire le texte.
Quelle fonction utiliser? (j'ai test getwindowtext mais apparement c'est
que pour les titres des fenêtres).

Merci de votre patience

PS : merci de ta réponse précédente sylvain

5 réponses

Avatar
Mickael
pipo wrote:
Bonjour,
Je souhaite obtenir le texte qui est dans une partie d'une fenêtre sachant
que je connais le handle de la fenêtre mère et le handle de la fenêtre fille
dont je veux extraire le texte.
Quelle fonction utiliser? (j'ai test getwindowtext mais apparement c'est
que pour les titres des fenêtres).

Merci de votre patience




Utilise WM_GETTEXT
Avatar
pipo
> Utilise WM_GETTEXT



En fait ma fenêtre est un chat, j'ai regardé les messages y arrivant et deux
messages sont répétés à chaque nouvelle ligne :
WM_USER + 15
WM_USER + 15 (0x0000040f)

Voici ce que j'ai trouvé sur msdn :
"The WM_USER constant is used by applications to help define private
messages".
Est ce que ça veut dire que mes messages sont codés et que un WM_GETTEXT ne
donnera rien?
Que puis je faire pour obtenir ces messages?

Peut être que je me suis trompé de fenêtre mais comment reconnaitre la bonne
étant donné que ma fenêtre mère à plusieurs fenêtres filles qui une fois
contournée s'avère être au même endroit? (je les ai toutes filtrés je ne
vois aucun message WM_GETTEXT)

merci
Avatar
Mickael
pipo wrote:
Utilise WM_GETTEXT



En fait ma fenêtre est un chat, j'ai regardé les messages y arrivant et deux
messages sont répétés à chaque nouvelle ligne :
WM_USER + 15
WM_USER + 15 (0x0000040f)



Mais elle a quelle classe de fenetre ? (SPY++)
en général, c'est "Edit" ou "RichEdit"
si c'est une classe perso, effectivement WM_GETTEXT peut ne pas marcher
si ce n'est pas géré.
Avatar
pipo
> Mais elle a quelle classe de fenetre ? (SPY++)
en général, c'est "Edit" ou "RichEdit"
si c'est une classe perso, effectivement WM_GETTEXT peut ne pas marcher si
ce n'est pas géré.



Le nom de classe de la fenêtre ou s'affiche le texte est : AfxWnd70u mais je
pense qu'il s'agit d'une classe "perso" du programme dont je veux lire le
texte.

Voici d'autres infos au cas ou ça pourrais vous (m') aider:
Class specific : Window is Ansi
Styles : WS_CHILD
StylesEx : WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR

Voici les seuls message qui s'affiche dans cette fenêtre : WM_GETTEXTLENGTH


Sous mon chat j'ai une zone texte (de class : RichEdit20W) et la je peux
voir des messages lorsque je tape dedans...

Est ce que le fait qu'il n'y ai pas de classe edit ou richedit ou s'affiche
mon texte à pour conséquence que je ne peux pas récupérer le texte qu'il y a
à l'intérieur?
N'y a t il pas un autre moyen que WM_GETTEXT pour avoir le texte si la
fenêtre n'est pas de classe edit ou richedit? (mise en place d'un hook???)

Merci d'avance
Avatar
Mickael
pipo wrote:

Le nom de classe de la fenêtre ou s'affiche le texte est : AfxWnd70u mais je
pense qu'il s'agit d'une classe "perso" du programme dont je veux lire le
texte.

Voici d'autres infos au cas ou ça pourrais vous (m') aider:
Class specific : Window is Ansi
Styles : WS_CHILD
StylesEx : WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR

Voici les seuls message qui s'affiche dans cette fenêtre : WM_GETTEXTLENGTH


Sous mon chat j'ai une zone texte (de class : RichEdit20W) et la je peux
voir des messages lorsque je tape dedans...

Est ce que le fait qu'il n'y ai pas de classe edit ou richedit ou s'affiche
mon texte à pour conséquence que je ne peux pas récupérer le texte qu'il y a
à l'intérieur?
N'y a t il pas un autre moyen que WM_GETTEXT pour avoir le texte si la
fenêtre n'est pas de classe edit ou richedit? (mise en place d'un hook???)

Merci d'avance



Essaye d'envoyer WM_GETTEXT à toutes les fenêtres en mettant le HWND en
dur pour tester (comme les fenêtres filles de AfxWnd70u)
Il y en a sûrement une dont on peut recuperer le texte.
Et c'est normal que WM_GETTEXT n'est pas envoyé, puisque c'est l'inverse
de la saisie