Rechercher : dans
Par :

[C]/[C++] Execution d'une commande externe

Dernière réponse le 1 déc 2008 à 18:00:44 wAx, le 23 jui 2003 à 10:26:05 
 Signaler ce message aux modérateurs

Bonjour à tous

Je cherche à lancer une commande externe à partir d'un programme c/c++.

La commande system serait parfaite si ce n'est qu'elle s'execute directement dans la console où je lance mon programme. Je m'explique:
Si dans mon programme je fais

system("dir c:\");

L'excution du dir s'affiche en plein milieu de l'execution de mon programme et me parasite l'affichage

Ce que j'aimerais, ça serait de pouvoir faire un truc du genre:
mystring=system("dir");

Que le dir n'apparaisse pas et que je puisse le reccuperer pour le traiter dans mystring

Merci pour vos idées

Meilleures réponses pour « [C]/[C++] Execution d'une commande externe » dans :
Windows 7: Faire apparaitre la commande exécuter VoirTout comme sous Vista, par défaut la commande Exécuter n’apparaît pas dans le menu Démarrer de Windows 7. Il faut taper Exécuter dans Rechercher pour y accéder. Si l'on veux faire apparaître cette commande de manière permanente dans le menu...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Raccourcis clavier Vi(m) VoirL'éditeur de texte Vi (VIM - Vi amélioré) - Raccourcis clavier I. Les modes d'exécution II. Le mode commande 1. Le déplacement Les Caractères Le texte Les lignes 2. Recherche 3. Numérotation de lignes 4. Modification, suppression III....

1

Baltawar, le 23 jui 2003 à 10:32:07

Salut wAx,

solution qui fonctionne sur Borland builder et Visual :

/* lance l'explorateur Windows */
ShellExecute ( NULL,"explore",".\\",NULL,NULL,SW_NORMAL);

/* ouvre le document */
ShellExecute
{NULL,"open","lisezmoi.htm",NULL,NULL,SW_NORMAL);

/* ouvre le repertoire contenant la documentation */
ShellExecute ( NULL,"open",".\\Docs",NULL,NULL,SW_NORMAL);

Voici quelques exemples ...

A+

Debout les crabes, la mer monte !

Répondre à Baltawar

2

Baltawar, le 23 jui 2003 à 10:33:23

Petite précision :

inclure :

/* header file pour "SHELL EXE" */
#include <ShellApi.h>

La c'est bon je pense ....

re - A++

Debout les crabes, la mer monte !

Répondre à Baltawar

3

wAx, le 23 jui 2003 à 10:41:26

Vi mais je vois pas où je reccupere ce qui est renvoyé par la commande externe

Bien entendu mon exemple de fonctionne pas mais ce que j'essayais de montrer, c'etait de reccuperer la sortie de la commande externe dans une chaine pour pouvoir la traiter ensuite.

J'ai bien conscience que ceci ne peut s'appliquer qu'à des commandes console car sinon je ne vais rien reccuperer mais cela correspond tout à fait à ce dont j'ai besoin

Répondre à wAx

4

nico, le 23 jui 2003 à 10:46:52

Dommage que tu ne developpe pas sous Unix/Linux
il te suffisait de lancer system("ls * > fichier");
tu récupérerais ainsi le résultat de ta commande dans une fichier que tu pouvais traiter sous forme de chaine de caractere.

sinon sous wind.... bah je ne sais ....

A@++

Répondre à nico

7

franck, le 1 oct 2003 à 14:00:23

Salut les gars!
je voudrais vous demandez deux choses! avec tout le respect que je vous dois voilà mes questions.
Qu'est-ce qu'une commande externe?
Qu'est-ce qu'une commande interne?

Répondre à franck

8

 likoupha, le 1 déc 2008 à 18:00:44

Donner moi la définition de commande interne et externe et six exemple de chaque

Répondre à likoupha

5

wAx, le 23 jui 2003 à 11:05:45
  • +3

Sisi, sous windows ça fonctionne
"dir > fichier.txt"
Et apres j'ouvre le fichier

Sinon, autre piste:
N'y a t'il pas moyen de rediriger le flux stdout non pas vers un fichier mais vers un autre flux ouvert pour le traiter directement ??

Répondre à wAx

6

jisisv, le 23 jui 2003 à 11:25:24

Hi,
popen sou Unix.
Sous win$ I don't know (et je veux pas savoir)

The software said "Requires Windows98, Win2000, or better,
So I installed Unix.

Répondre à jisisv
Collection CommentÇaMarche.net