begin process at 2012 05 30 05:56:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Systeme

 > 

prog msdos


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

prog msdos

dimanche 5 septembre 2004 à 22:40:43 | prog msdos

kollibar

comment faut il faire pour lancer un programme MS-dos et recupperrer toutes ce que celui ci imprimme a l ecran??

merci.

KOLLIBAR bare
dimanche 5 septembre 2004 à 22:57:14 | Re : prog msdos

AlexMAN

Membre Club
http://www.vbfrance.com/code.aspx?id=6395

En VB mais TRES facilement tu peux migrer cette application en C/C++.

Voila ++
dimanche 5 septembre 2004 à 23:12:50 | Re : prog msdos

antoine_1977

Super ta réponse Alex, mais VB c'est pas ce site là...
En C j'utilise la redirection '>' du dos vers un fichier puis j'exploite ce fichier... du genre

system("dir /B /S > monfichier.txt");
tu ouvre le fichier .txt et tu le parse.

Mais il y a peut-être qqchose de plus immédiat en C++ mais alors je ne le connais pas... c toi qui vois.

Borland C++ v6.
lundi 6 septembre 2004 à 00:04:23 | Re : prog msdos

aardman

Membre Club
Salut,
Faut lancer l'exe avec CreateProcess, et mettre le handle de son choix dans le membre hStdOutput de la structure STARTUPINFO.
lundi 6 septembre 2004 à 00:11:30 | Re : prog msdos

BruNews

Administrateur CodeS-SourceS
Et 1 bon point pour aardman.

ciao...
BruNews, Admin CS, MVP VC++
lundi 6 septembre 2004 à 21:25:06 | Re : prog msdos

antoine_1977

Dites, j'ai essayé la fonction CreateProcess, mais qd j'ai voulu récupérer le hStdOutput mais bizarement, ce handle est toujours à NULL. Pourquoi donc? alors que je lance simplement un batch avec un "echo xxxx"...

Borland C++ v6.
lundi 6 septembre 2004 à 23:49:01 | Re : prog msdos

antoine_1977

en gros qu'est-ce qu'il fo mettre comme handel?

Borland C++ v6.
lundi 6 septembre 2004 à 23:59:43 | Re : prog msdos

BruNews

Administrateur CodeS-SourceS
Va voir CreatePipe() dans MSDN, tu auras en prime un exemple quasi complet.

ciao...
BruNews, Admin CS, MVP VC++
mardi 7 septembre 2004 à 17:58:43 | Re : prog msdos

antoine_1977

Réponse acceptée !
voilà une vrai réponse après qq heures de recherches....


char * TMainForm::RunDOScmd(char *CommandLine)
{
STARTUPINFO siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
unsigned long dwExitCode;

HANDLE PipeInputRead;
HANDLE PipeInputWrite;
HANDLE PipeOutputRead;
HANDLE PipeOutputWrite;

SECURITY_ATTRIBUTES securityattribs = {
sizeof(SECURITY_ATTRIBUTES),
NULL,
TRUE
};

ZeroMemory(&siStartupInfo, sizeof(siStartupInfo));

// initialisation de la taille
siStartupInfo.cb = sizeof(siStartupInfo);

// Create pipe for standard output redirection
CreatePipe(&PipeOutputRead, &PipeOutputWrite, &securityattribs, 0);
// Create pipe for standard input redirection.
CreatePipe(&PipeInputRead, &PipeInputWrite, &securityattribs, 0);


siStartupInfo.dwFlags = STARTF_USESTDHANDLES;
siStartupInfo.hStdInput = PipeInputRead;
siStartupInfo.hStdOutput = PipeOutputWrite;
siStartupInfo.hStdError = PipeOutputWrite;

bool pSuccess = CreateProcess( NULL,
CommandLine,
NULL,
NULL,
true,
0,
NULL,
NULL,
&siStartupInfo,
&piProcessInfo);
if (pSuccess) {
CloseHandle(piProcessInfo.hThread); // fermer le handle de thread dès qu'il devient inutile
WaitForSingleObject(piProcessInfo.hProcess, INFINITE); // attente jusqu'à la signalisation de la fermeture de notepad
GetExitCodeProcess(piProcessInfo.hProcess, &dwExitCode); // le processus notepad est terminé
if (dwExitCode != STILL_ACTIVE)
CloseHandle(piProcessInfo.hProcess); // fermer le handle de process
} else {
MessageBox(NULL, CommandLine, "Command Line Error", MB_OK|MB_ICONSTOP);
CloseHandle(PipeOutputWrite);
CloseHandle(PipeInputRead);
return("");
}
CloseHandle(PipeOutputWrite);
CloseHandle(PipeInputRead);
CloseHandle(PipeInputWrite);

// Read output from the child process.
DWORD dwRead;
CHAR chBuf[BUFSIZE];
String procstdout="",procstderr="";
while (ReadFile(PipeOutputRead, chBuf, BUFSIZE-1, &dwRead, NULL) && (dwRead != 0)) {
chBuf[dwRead] = '\0';
procstdout += chBuf;
this->Memo1->Text= chBuf;
}
while (ReadFile(PipeOutputRead, chBuf, BUFSIZE-1, &dwRead, NULL) && (dwRead != 0)) {
chBuf[dwRead] = '\0';
procstderr += chBuf;
}
CloseHandle(PipeOutputRead);




Borland C++ v6.


Cette discussion est classée dans : prog, green, msdos, blue


Répondre à ce message

Sujets en rapport avec ce message

Mettre une fenette en premier plan et l'activer [ par atao ] QQun connait il une façon plus élégnate pour mettre une fenette en premier plan et l'activervoid MettreFenetreDevant(HWND hwndDlg){// car si elle est HELP !! executer une prog [ par ben01n ] je prog sous gcc et je voudrai executer un second prog a partir de mon prog sans que ce dernier n'attende la fin du second progsi vous avez une soluti char* [ par kollibar ] je debute en C et donc je vais poser une question con...avec une chaine de caractère CHAR* comment je peut faire pour récupérer une sous chaine allant detection de connection internet [ par kollibar ] salut!!je suis en train de faire un client irc et je voudrais qu'il se lance automatiquement à la connection internetexiste-t'il une fonction de windo Algo Morphing...Grrrrr [ par AlexMAN ] Bonjour, Voila, j'ai codé un "algo" morphing, mais il est assez lent, et pas parametrable (jn'ai aucun moyen de savoir combien de fois je dois appeler aide C++ [ par kollibar ] bonjour,j ai borland C++ compiler 5.5 mais y a pas d aide sur le C++ incluse avec(y a juste l aide sur l usage du compilateur), si qq1 peut me dire où un prog c++ est il dépendant d'autres fichiers [ par lebarn ] Bonjour, Un prog c++ est-il dépendant d'autres fichiers ? L'exécutable peut-il s'exécuter même sur une machine qui n'a jamais eu un logiciel de prog ? classe string [ par kollibar ] bonjour,je debute en C++, j utilise borland C++ compiler 5.5où pourrais je trouver une explication detoutes les fonctions de la classe string??merciKO [Probléme] enregistrement Image Webcam [ par vbnino ] Salut! -Je fais un petit programme qui capture la webcam sur un Timage et l'enregistrer, mais y'a un probléme, lorsque j'enregistre le fichier, l'im analyseur léxical [ par sarah90 ] j'ai un tp sur un analyseur léxicale de program pascal ce prog donner par l'utilisateur ;quand l'utilisateur entrer le prog il faut afficher les in


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,605 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales