Récupération Console

victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 - 15 oct. 2008 à 18:09
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 17 oct. 2008 à 18:09
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

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 oct. 2008 à 13:46
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.
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
16 oct. 2008 à 17:24
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
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
16 oct. 2008 à 19:51
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
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
17 oct. 2008 à 09:52
"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é.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
17 oct. 2008 à 17:33
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
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
17 oct. 2008 à 18:09
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é.
0
Rejoignez-nous