Console

cs_noel70 Messages postés 40 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 25 janvier 2007 - 28 févr. 2005 à 23:25
Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 - 1 mars 2005 à 22:45
Bonjour à tous.
Voilà, par l'intermédiaire de l'API CreateProcess, je lance une application console 16 bits.
Ce que je voudrais faire, c'est récupérer ce que l'application console me renvoit à l'écran.

Si quelqu'un sait comment on peut faire ceci ?
Merci à l'avance.

2 réponses

NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
1 mars 2005 à 00:44
Il y à peut-être moyen d'y arriver avec ceci:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/console_functions.asp

~(.:: NitRic ::.)~
0
Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 3
1 mars 2005 à 22:45
Bnojour,

Oui c'est possible normalement:

CreateProcess possède une structure

STARTUPINFO

peut-être que si tu spécifie le handle toi-même alors il sera valable après ...

Ou alors la méthode barbare:

CreateProcess avec thread bloqué

insertion d'une dll dans le processus

débloquage du thread

DLL:

récupération handle:
GetStartupInfo

création d'un thread séparé qui analyser constamment le handle de sortie:

while(1)

{

WaitForSingleObject(hStdOut,INFINITE);

........

}

Récupération de ce qui a été écrit: ReadFile(peut-être qu'il renvoit l'ensemble de l'écran donc à couper en fonction)

L'envoyer au processus qui doit recevoir ce qui est écrit par les fonctions

OpenFileMapping,MapViewOfFile et CreateFileMapping qui permette de créer comme des "pipes" entre processus .



si jamais ce que je te dis est trop obscure(et je te comprend) dis-le et je posterais sur codes-Source, u prog pour faire çà .


A m a u r y
0
Rejoignez-nous