Récupération Console

Signaler
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonjour,

Je voudrais savoir comment récupérer le texte d'une console à partir de son handle HWND.

Merci d'avance et bonne prog,
@++

Victorhttp://www.victorlogiciels.com

6 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,

Je ne pense pas que cela soit possible, du moins pas aussi "facilement" que pour récupérer le texte d'une fenêtre classique. L'invite DOS est une appli un peu spéciale à différents points de vue...

Cela dit, peut être as-tu une solution de replis ?
Par exemple en t'arrengeant pour ce qui écris dans ta console n'écrive pas dans ta console, mais dans quelque chose à toi. Cela peut être simplement une redirection de la sortie dans un fichier, ou encore en précisant le hStdOutput d'une STARTUPINFO d'un CreateProcess.Un exemple sur ce thread.
En dernier recours, tu peux hooker WriteFile et WriteConsole, qui sont les deux fonctions suceptibles d'être utilisée pour écrire dans une console.

Dans tout les cas, si tu n'as pas pris tes précautions avant, je crois que c'est mort pour récupérer le texte une fois qu'il est écrit.
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
Bonjour,

Aussi c est pour recup le texte d un programme nomme Wincom 3270 et je le soupsonne de se servir d une console.

Si jamais tu trouve un moyen de recuperer le texte ça m interesse.

PS : Desole pour les accents mais j ai un pb de clavier.
 
Merci et bonne prog,
@++

Victorhttp://www.victorlogiciels.com
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
Bonjour,

Quand je dis récup le texte d'une console je parle d'un programme fonctionnant en mode console et non pas celle de Windows.

Merci et bonne prog,
@++

Victorhttp://www.victorlogiciels.com
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
"d'un programme fonctionnant en mode console et non pas celle de Windows"

Houlà je suis pas sûr de voir ce que c'est ça...

"Grâce a son interface graphique conviviale, Wincom s'intègre parfaitement aux postes de travail bureautiques et aux applications Microsoft Office: barres d'outils paramétrables, clavier programmable, gestion des mots-clés (hotspots) ... "

Bin on peut faire des trucs assez avancé en mode caractère dans l'invite de console windows, mais à ce point là j'ai des doutes...

Donc ton wincom, ce serait plutôt une application GUI non ?

Voilà ce que l'on peut faire (A ma connaissance) de mieux en matière d'application console :
http://www.geocities.com/thestarman3/C/td32-3.gif

C'est interactif, on peut cliquer... Mais tout est en caractères.

Si ton application a une plus jolie interface c'est qu'elle ne tourne pas dans l'invite de commande Windows. Si elle ne tourne pas dans une invite de commande c'est que c'est une application GUI classique.

Si c'est une application GUI classique, tu as plus de chance de pouvoir récupérer le texte.

Si tu as Visual Studio, tu as spy++, qui permet d'explorer l'arborescence des fenêtres de l'application, ainsi que leur titres et classes.

Cela devrait te permettre de déterminer comment récupérer un handle sur la fenêtre qui contient le texte qui t'intéresse, à l'aide des fonctions de recherche de fenêtre : FindWindow, EnumWindow, GetWindow...

Il te suffira ensuite de faire un SendMessage ou un PostMessage du message WM_GETTEXT et voir si le texte t'est renvoyé.
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
Bonjour,

Si tu veux c'est une classe de fenêtre défini par Wincom qui m'est indiqué en tant qu'afficheur.

Mais cet afficheur n'est rien que du texte.
Il y a certes des menus mais c'est pas dans l'afficheur c'est la fenêtre qui contient l'afficheur qui a un menu.

Merci et bonne prog,
@++

Victorhttp://www.victorlogiciels.com
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Ok, mais l'afficheur n'est pas une invite de commande DOS.

Donc tu peux récupérer son handle.

Avant de récupérer son handle en le cherchant avec ton appli, tu peux faire un test en le récupérant avec ton outil.

Par exemple, là tu pourrais faire un SendMessage de WM_GETTEXT sur le handle 0x000E0904. Ce handle reste valide tant que tu ne refermes pas l'application espionnée, et change quand tu relances l'appli.

Si ça te renvoie le texte, c'est gagné.