[C] Lancer une commande cmd
Rem's
Messages postés
64
Date d'inscription
Statut
Membre
Dernière intervention
-
dahoo -
dahoo -
Bonjour,
Je cherche à coder un petit programme en C qui va executer une commande cmd de type dir, puis récupérer pour l'analyser ce que renvoie la commande. Ici, la liste du répertoire par exemple.
J'avais pensé à shellexecute, mais en fait aparemment ça se contente de lancer la commande dans une fenêtre dos sans rien récupérer...
La je seche, donc si vous avez une idée, je suis preneur.
Merci :)
Je cherche à coder un petit programme en C qui va executer une commande cmd de type dir, puis récupérer pour l'analyser ce que renvoie la commande. Ici, la liste du répertoire par exemple.
J'avais pensé à shellexecute, mais en fait aparemment ça se contente de lancer la commande dans une fenêtre dos sans rien récupérer...
La je seche, donc si vous avez une idée, je suis preneur.
Merci :)
A voir également:
- [C] Lancer une commande cmd
- Invite de commande - Guide
- Commande terminal mac - Guide
- Scannow cmd - Guide
- Lancer une application au démarrage windows 10 - Guide
- Récupérer clé windows cmd - Guide
5 réponses
salut!
pour la commande dir, on peut faire quelque chose
(j'ai trouvé ça dans borland)
sinon, malheureusement c'est du cas par cas
on peut récupérer les variables d'environement avec
Sous unix / linux il y a plein d'astuces pour récupérer les infos du système.
sous windows, c'est une galère.
cordialement
¤
pour la commande dir, on peut faire quelque chose
#include <dirent.h> #include <stdio.h> #include <stdlib.h> void scandir(char *dirname) { DIR *dir; struct dirent *ent; printf("premier passage dans '%s':\n",dirname); if ((dir = opendir(dirname)) == NULL) { perror("impossible d'ouvrir le répertoire"); exit(1); } while ((ent = readdir(dir)) != NULL) printf("%s\n",ent->d_name); printf("deuxième passage dans '%s':\n",dirname); rewinddir(dir); while ((ent = readdir(dir)) != NULL) printf("%s\n",ent->d_name); if (closedir(dir) != 0) perror("impossible de fermer le répertoire"); }
(j'ai trouvé ça dans borland)
sinon, malheureusement c'est du cas par cas
on peut récupérer les variables d'environement avec
char *getenv(const char *name);
Sous unix / linux il y a plein d'astuces pour récupérer les infos du système.
sous windows, c'est une galère.
cordialement
¤
Yes, merci ça marche mais en fait, ce que je voudrais faire exactement c'est pouvoir rediriger la réponse à une commande cmd (dir net ou autre) dans une variable pour pouvoir traiter ensuite la réponse...
Je suis pas sur qu'on puisse le faire avec shellexecute, si vous avez une autre idée...
Je suis pas sur qu'on puisse le faire avec shellexecute, si vous avez une autre idée...
system ("dir") va effectivement lancer la commande dir, mais dans une fenêtre, et tu ne pourra rien récupérer à part 0 si ça s'est bien passé, sinon un code d'erreur.
tout ce qui passe par cmd.exe (ou command.com sous win9x)
va ouvrir une fenêtre "dos" (ou console si WIN>=2000)
et ça ne communique pas avec le prog.
voilà pour quoi chaque commande système nécessite plus ou moins une fonction spécifique
¤
tout ce qui passe par cmd.exe (ou command.com sous win9x)
va ouvrir une fenêtre "dos" (ou console si WIN>=2000)
et ça ne communique pas avec le prog.
voilà pour quoi chaque commande système nécessite plus ou moins une fonction spécifique
¤
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question