Faire exécuter plusieurs commandes à la cmd dans la même Console

Messages postés
35
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
23 mars 2006
-
Messages postés
35
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
23 mars 2006
-
Bonjour,

j'airais besaoin d'un coup de main de votre part.
J'ai un programme qui devrait exécuter quelques commandes dans la cmd.exe après l'avoir lancée, mais je ne sais pas vraiment comment m'y prendre.

Je pensait qu'avec un AllocConsole() aini que les Handles correspondants je pourrais le faire, mais je ne vois pas trop comment.

Voici mon Code jusqu'ici:

#include
#include <Windows.h>

int main(){
HANDLE hIn;
hIn = GetStdHandle(STD_INPUT_HANDLE);
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);

AllocConsole();
if (hIn != INVALID_HANDLE_VALUE)
{


STARTUPINFO si = { sizeof(si) };
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdInput = hIn;
si.hStdOutput = hOut;


PROCESS_INFORMATION pi;
char szExe[] = "cmd.exe /K dir \r\n";

if(CreateProcess(0, szExe, 0, 0, TRUE, 0, 0, 0, &si, &pi))
{

}

}
return 0;
}

Je voudrais avoir des commandes commes cd.., dir, copy etc dans la même Shell.
Quelqu'un peut il m'aider?

ce serait sympa,
salutations,
Sens0r

7 réponses

Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
et pourquoi pas system("la command");







Bon code

++All
Messages postés
203
Date d'inscription
lundi 2 août 2004
Statut
Membre
Dernière intervention
8 septembre 2006

Bonjour
Je te propose aussi la commande ShellExecute(). Es tu sur d'utiliser vraiment la meilleur solution? L'utilisation des API est peut être plus appropriée?

Bonne soiré.
Messages postés
35
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
23 mars 2006

Nonjour, je vous remercie :)

Alors non, je ne suis pas sur :) Je suis débutant en ce domaine, pourrais tu m'expliquer s'il te plait?

@deck_bsd
mh oui j'y ai déja pensé, dois-je simplement placer system() dans:

if(CreateProcess(0, szExe, 0, 0, TRUE, 0, 0, 0, &si, &pi))
{

}
?

oubien où?

thx,
sens0r
Messages postés
203
Date d'inscription
lundi 2 août 2004
Statut
Membre
Dernière intervention
8 septembre 2006

Que compte tu y mettre dans ta commande : system().. Si tu souhait y mettre un dir, il y a des solutions certainement plus appropié pour lister les fichiers d'un repertoire.

pour CreateProcess() quelques info http://support.microsoft.com/default.aspx?scid=kb;fr;175986
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp
Bon courrage
Messages postés
35
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
23 mars 2006

Salut,

comme je l'ai dit dans mon premier post:
Je voudrais avoir des commandes commes cd.., dir, copy etc dans la même Shell.

J'ai donc toujours le même objectif ;)
Quel solution p.ex?

Salutations
sens0r
Messages postés
203
Date d'inscription
lundi 2 août 2004
Statut
Membre
Dernière intervention
8 septembre 2006

Messages postés
35
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
23 mars 2006

HEy,

exellent, je te remerci, je vais analyser tout cela!

Merci,
Sens0r