cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 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.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 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 ?
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é.
Vous n’avez pas trouvé la réponse que vous recherchez ?
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 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.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 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.