Lire des controls d'une autre application

Résolu
Signaler
Messages postés
6
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
2 juillet 2007
-
Messages postés
6
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
2 juillet 2007
-
J'ai une application existante qui affiche un log dans dans un listview. Moi j'aimerais programmer une application qui surveillerais ce log en temps réel. Pour ce faire, il faudrait que j'aille lire les lignes du control listview de l'autre application.

J'imagine que c'est avec les API que je pourrais faire ça. Je sais que ça existe et c'est possible mais je ne sais pas où regarder.

Merci de m'aider.

6 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Faut subclasser le listview, je pense que c'est le moyen le plu réactif

voir les sources (VB6) de notre ami EBArtSoft, qui se paye le luxe de subclasser les fnetres d'une autre application

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Il fait ca lui ? Oufti quel homme, je vais voir ca tout de suite :)
Fais attention qu'en VB.Net, tu seras confronté au problème que les Contrôles ne sont normalement accessibles que par le Thread qui les a créé, pour y accèder depuis une autre application, tu dois mettre dans la première :

Controls.CheckForIllegalCrossThreading = False

<hr size="2" width="100%" />Julien.
Messages postés
492
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2012
4
Bonjour,
Dans VB6 il y avait sur les contrôles les fonctions Link qui sont des fonction "OLE"
J'ai vérifié dans VB.net.. pas de fonction similaire.
Mais il y a quand même une class Link a explorer.
A+
louis
Messages postés
6
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
2 juillet 2007

Merci de vos réponses, je vais regardé ça. Il y a t-il des sources en VB.NET aussi?
Messages postés
6
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
2 juillet 2007

Bon finalement avec les API j'ai été capable de lire un listbox d'une autre application, en utilisant des SendMessageTimeout de user32.

C'est bien, mais l'application que je veux lire les logs n'utilise pas un listbox pour les logs. Elle utilise une de ces propre classe qui ressemble à un listbox. Il y a tu moyen de faire quelque chose avec ça? Ou sinon avec son handle, il y tu moyen de lire son utilisation en mémoire?

Merci
Messages postés
6
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
2 juillet 2007

Ouais bon je suis en train de lire un document sur le subclassing. Oui ça semble être une solution à mon problème. Pour ceux qui savent pas c'est quoi le subclassing (comme moi il y a 30 minutes), en gros c'est intercepté les messages envoyé  à un control, les traiter (ou pas) et les faire suivre au control (ou pas).