begin process at 2012 02 13 00:08:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Systeme

 > 

executer une commande systeme


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

executer une commande systeme

mercredi 10 mars 2004 à 18:40:35 | executer une commande systeme

anthraxx

bonjour,
je voulais savoir si quelqu'un connait un moyen d'éxecuter des commandes su systemes d'exploitation sous Windows, et d'en récupérer l'output.
Il s'agirait donc d'imiter la fonction system() mais en renvoyant la sortie.

j'avais essayé en lançant un processus de l'interpréteur de commandes et puis, avec des "pipes", d'envoyer des commandes et de recevoir le résultat. Le problème était qu'un fenêtre de ligne de commande apparait alors que je voudrais que ce soit invisible.

Si quelqu'un a une idée... merci d'avance

anthrax
mercredi 10 mars 2004 à 18:48:41 | Re : executer une commande systeme

vecchio56

Administrateur CodeS-SourceS
system("commande>fichier"); te permet de mettre le resultat dans lun fichier, mais ce n'est pas super
mercredi 10 mars 2004 à 19:29:08 | Re : executer une commande systeme

anthraxx

malin...
mais tu m'as donné une autre idée: pourrait-on décomposer la tâche en 2 programmes:
1) le programme 1 utilise system("commande | programme2.exe"); puis crée une "named pipe" et écoute.
2)le programme2 lit son "input" et l'écrit dans une "named pipe", ... que lit le premier programme

c'est un peu compliqué, mais ça évite de faire des fichiers temporaires; je m'en vais de ce pas voir si ça marche.

mais s'il y a encore des solution plus faciles n'hésitez pas!
vendredi 14 mai 2004 à 01:48:05 | Re : executer une commande systeme

mirlaine

salut javai fait un peti program de la sorte pour afficher les resulta dun process dufférent du mien

DWORD fport()
{
LPTSTR lpCommandLine = "OpPorts.exe";
HANDLE hReadPipe, hWritePipe ;
HANDLE hErrReadPipe, hErrWritePipe;


DWORD dwStdOut;

DWORD dwRet;
DWORD res;

SECURITY_ATTRIBUTES sa;
STARTUPINFO StartupInfo;
PROCESS_INFORMATION ProcessInfo;

sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;

hReadPipe = NULL;
hWritePipe = NULL;
hErrReadPipe = NULL;
hErrWritePipe = NULL;
dwStdOut = 0;

CreatePipe(&hReadPipe, &hWritePipe, &sa, 8192);

ZeroMemory(&StartupInfo, sizeof(STARTUPINFO));

StartupInfo.cb = sizeof(STARTUPINFO);
StartupInfo.dwFlags = STARTF_USESTDHANDLES;
StartupInfo.wShowWindow = SW_HIDE;
StartupInfo.hStdOutput = hWritePipe;

if (CreateProcess(
NULL,
lpCommandLine,
&sa,
NULL,
TRUE,
DETACHED_PROCESS,
NULL,
NULL,
&StartupInfo, &ProcessInfo))
{

while ( (dwRet = WaitForSingleObject(ProcessInfo.hProcess, 2000)) !=
WAIT_ABANDONED)
{
memset(bufStdOut, 0, sizeof(bufStdOut));

ReadFile(hReadPipe, bufStdOut, sizeof(bufStdOut) - 1, &dwStdOut,NULL);

if (dwRet == WAIT_OBJECT_0)
break;
}


GetExitCodeProcess(ProcessInfo.hProcess, &res);
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
}
else
{

printf( "CreateProcess failed %s\n",lpCommandLine );

}

CloseHandle(hWritePipe);
CloseHandle(hReadPipe);
CloseHandle(hErrWritePipe);
CloseHandle(hErrReadPipe);

return 0;
}

je me rappel plus si ya des erreur
enfin cest basé sur un exemple de msdn...
a+


Cette discussion est classée dans : systeme, commande, quelqu, executer, commandes


Répondre à ce message

Sujets en rapport avec ce message

Comment executer une commande systeme sur Linux avec gcc ??? [ par jean84 ] Salut a tous ! Je voudrais savoir s'il existe une commande telle que system() sous linux ??? Si oui laquelle ??? Merci "Avant même de fonctionner, tou executer une commande dos [ par Daimadoshi ] slt tlm, voila je voudrai pendant un programme executer une commande dos. j'ai pensé lancer ma commande avec une ligne dans ce genre mais cela ne semb simulation d'un systeme de fichier [ par vignemail1 ] J'ai un projet à rendre en Systeme pour la FAC et je cherche si quelqu'un aurai déjà fait mon sujet ou si quelqu'un connait une adresse avec ce code e Executer une commande DOS en C++ [ par Kheo ] Quel API faut il utiliser pour executer une commande DOS depuis un source C++.J'ai trouvé _exec mais ca ne fait rien.../ Kheo / executer commande [ par edpunisher ] kikoo aidez moi pleaaaaaaaze je voudrai executer une commande unix et retourner le resultat dans une variable prédefini j offre 100 000$ a ki pourra m lancer une commande systeme sur un unix [ par Sioban ] Je souhaite lancer un commande systeme de type un "ls -l nom_du_fichier.dat" sur un serveur unix via mon PC(XP). (Pour avoir le nombre de ligne de cer Commande Systeme [ par joh ] Voila mon probleme ,j'utilise ShellExecute() (ds un prog en C++ sous Visual6) pour appeler OutLook et le remplire sa marche sauf que je n arrive pas a programme en c [ par salim_samir ] Salut à tous le monde, j’ai été invité c’est la 1ère fois que j’utilise ce forum et je trouve qu’il est très utile. Je suis pas un programmeur et je v faire executer des lignes de commande a cmd [ par Mick7 ] Salut, voila je m'exlique je veux executer cmd (avec CreateProcess par exemple) et lui passer plusieurs lignes de commande une apres les autres  par e Executer une commande [ par ffomnislash ] hello ;)J'ai un programme ecrit en c++/gtkmm dans lequel je veut executer une commande et surtout recupérer son resultat au fur et a mesure.J'ai une s


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,309 sec (3)

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