Communication entre applications / DataGrid

Le
DevWDapI
Bonjour,

Je réalise une application permettant d'extraire des données contenues
dans la fenêtre d'une application externe créée par une société tierce.
Ainsi, pour repérer la fenêtre j'utilise le système de "Handle" qui
permet à Windows d'identifier les différents éléments de l'interface.
Cependant je n'arrive pas à accéder à certains éléments comme les
contenus des dataGrid pour qui Windows ne voit qu'un seul handle de
fenêtre pour l'ensemble des éléments qu'il contient.

J'utilise notamment "Greatis Windowse", un programme qui identifie le
"handle" de chaque élément de l'interface (donnant également d'autres
infos comme les fils, les classes des éléments, ).
Par exemple, dans la capture suivante, nous pouvons identifier plusieurs
éléments qui sont: La fenêtre en elle-même, le StringGrid, un champ de
texte et un bouton.

http://www.magic-soft.net/PostsImages/capture1.PNG

Tous ces éléments sont alors identifiés par un handle unique. Ainsi,
lorsque je demande à Windowse de m'afficher, par exemple, les infos sur
le champ texte, celui-ci, en plus de me donner le handle de ce champ, me
donne son contenu: "Exemple de contenu".
J'arrive sans problème à accéder au contenu texte du champ Input ou a
provoquer à distance le clic sur le bouton (par exemple avec
PostMessage(TheHandle, WM_LBUTTONDOWN, MK_LBUTTON,0).

Cependant, de la même manière, lorsque je demande des informations sur
le StringGrid, celui-ci ne me donne qu'un seul et unique handle
identifiant l'objet dans sa globalité (peu importe la case que je lui
indique) ce qui m'empêche d'accéder à un "sous-objet" en particulier.
Par exemple, j'aimerai connaître la chaîne de caractère située dans la
case B2.

http://www.magic-soft.net/PostsImages/capture2.PNG

M'est-il possible de le faire ? Comment m'y prendre ?

Merci d'avance


DevLXApi
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Steph
Le #19497191
"DevWDapI" h0b6kj$1sg$

Cependant, de la même manière, lorsque je demande des informations sur le
StringGrid, celui-ci ne me donne qu'un seul et unique handle identifiant
l'objet dans sa globalité (peu importe la case que je lui indique) ce qui
m'empêche d'accéder à un "sous-objet" en particulier.



Ca dépend du controle : si c'est un TStringGrid, c'est pas possible comme il
est dessiné (à part faire de l'OCR..)
Ca aurait été possible avec d'autres controles exposant des interfaces COM.
marc
Le #19516501
DevWDapI a écrit :

http://www.magic-soft.net/PostsImages/capture2.PNG

M'est-il possible de le faire ? Comment m'y prendre ?



Oui, c'est sûrement un TStringGrid (VCL).
Tu peux à la rigueur lire les chaines avec ReadProcessMemory()...
Publicité
Poster une réponse
Anonyme