Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2631 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Invite de commandes ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Invite de commandes ...

n°834722
Deimos_
Posté le 27-08-2004 à 22:32:17  profilanswer
 

Hello all
 
Je voudrais savoir comment, en C++, car il me semble que c'est possible, de récupérer le texte que me renvoie l'invite de commandes après une commande.
Par exemple si je fais "ping lesite.com" je voudrais récupérer le texte que me renvoie l'invite !
 
J'espère avoir été clair, bonn soirée à tous ;) et merci de vos réponses ++

mood
Publicité
Posté le 27-08-2004 à 22:32:17  profilanswer
 

n°834731
Taz
bisounours-codeur
Posté le 27-08-2004 à 22:39:39  profilanswer
 

int main(int argc, char *argv[]

n°834733
schnapsman​n
Zaford Beeblefect
Posté le 27-08-2004 à 22:41:16  profilanswer
 

Taz a écrit :

int main(int argc, char *argv[]


non


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°834751
Deimos_
Posté le 27-08-2004 à 22:56:45  profilanswer
 

ben ... comment alors ?

n°834755
Taz
bisounours-codeur
Posté le 27-08-2004 à 22:59:49  profilanswer
 

ah merde
 
man popen
man fork
man pipe
man exec

n°834884
HelloWorld
Salut tout le monde!
Posté le 28-08-2004 à 00:50:17  profilanswer
 

Les fonctions varient en fonction de l'OS, mais le principe est le même : tu rediriges les flux standards du process lancé avec des pipes. Précises l'OS.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°834903
Deimos_
Posté le 28-08-2004 à 01:01:46  profilanswer
 

Os => Windows xp

n°834919
raytaller
Posté le 28-08-2004 à 01:24:33  profilanswer
 

excusez moi mais.. pourquoi le premier truc posté par Taz va pas ?
c'est pas du C++ c'est pour ça ?

n°834931
swixm
Posté le 28-08-2004 à 01:32:37  profilanswer
 

si sa en est ( je pense) je suis sur a 70% mais bon de oute facon je suis pas competant snif :jap:

n°834957
blackgodde​ss
vive le troll !
Posté le 28-08-2004 à 03:21:39  profilanswer
 

regarde la doc de CreateProcess (msdn), me semble que dans une structure passée en param tu peux spécifier les flux que le processus fils utilisera.


---------------
-( BlackGoddess )-
mood
Publicité
Posté le 28-08-2004 à 03:21:39  profilanswer
 

n°834979
WhatDe
Posté le 28-08-2004 à 10:10:17  profilanswer
 

raytaller a écrit :

excusez moi mais.. pourquoi le premier truc posté par Taz va pas ?
c'est pas du C++ c'est pour ça ?


Le truc de Taz c'est pour récupérer les arguments: ping www.lesite.com... mais pas ce qui est affiché dans la console après .

n°834981
cris56
Posté le 28-08-2004 à 10:17:35  profilanswer
 

BlackGoddess a écrit :

regarde la doc de CreateProcess (msdn), me semble que dans une structure passée en param tu peux spécifier les flux que le processus fils utilisera.


 
oui ca c'est le mieux, mais on peut rester dans  le portable et  faire simple en utilisant fopen, le standard posix est porté sous win (enfin moi j'utilise ca avec devcpp)

n°835114
raytaller
Posté le 28-08-2004 à 14:37:10  profilanswer
 

WhatDe a écrit :

Le truc de Taz c'est pour récupérer les arguments: ping www.lesite.com... mais pas ce qui est affiché dans la console après .


oui ok, il suffisait de savoir lire. merci.

n°835222
HelloWorld
Salut tout le monde!
Posté le 28-08-2004 à 18:55:47  profilanswer
 

Deimos_, y'a 2 solutions
- tu te fais chier avec les pipes pour récupérer la sortie de ping.exe
http://support.microsoft.com/defau [...] -us;190351
- tu fais le ping toi même
http://msdn.microsoft.com/library/ [...] ndecho.asp


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°835246
cricri_
Posté le 28-08-2004 à 20:01:02  profilanswer
 

Tiens je ne savais pas que cette fonction existait sous wintruc, merci ;)
Y en a d'autres des fonctions de ce niveau ?
Car de mémoire j'avais lu qu'il n'y avait pas d'acces au niveau IP dans l'interface win ...
Je chercherai ...


Message édité par cricri_ le 28-08-2004 à 20:09:17
n°835353
Deimos_
Posté le 29-08-2004 à 02:28:17  profilanswer
 

Ouais thx helloworld mais le ping c'était un exemple ! Je devrais pouvoir récupérer nimporte quelle réponse a une ommande, comme "help" sous windoxws, etc

n°835391
Ace17
Posté le 29-08-2004 à 09:45:20  profilanswer
 

Code :
  1. system("ping www.lesite.com > file.txt" );
  2. FILE* fopen("file.txt", "r" );


:D

n°835522
HelloWorld
Salut tout le monde!
Posté le 29-08-2004 à 15:23:45  profilanswer
 

Crici_> on peut faire pas mal de trucs avec les Raw Socket, et puis y'a l'IP Helper API :
http://msdn.microsoft.com/library/ [...] t_page.asp
Deimos_> ce que propose Ace17 est incomplet car il faut attendre la fin de l'exécution du process lancé. Mieux vaut créer le fichier soit même (CreateFile) et passer son handle en tant que stdout via CreateProcess (solution de BlackGoddess). Idem avec stderr (si tu veux le même fichier pour les 2, il faut dupliquer le handle => DuplicateHandle). CreateProcess te donne le handle du process lancé, tu peux attendre qu'il ait fini avec WaitForSingleObject et alors aller lire dans le fichier créé.
L'autre solution plus complexe c'est de filer des pipes (cf le lien donné).


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°837164
Apprenti P​ingouin
Posté le 30-08-2004 à 22:31:59  profilanswer
 

Deimos_ ->
 
Tu fais rentrer dans le main comme sa.
 
int main (int argv, char *argc[])
{
   ...
}
 
 
Si ton application s'appele supp, et que tu veux agir sur toto.txt.
Dans une fençetre dos tu tappe "supp tot.txt".
 
Tu as sa :
argc[0] = "supp";
argc[1] = "toto.txt";
 
C'est du ANSI.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Invite de commandes ...

 

Sujets relatifs
apprendre les principale commandes pour ecrire un vbs[Algo] Parseur de commandes "interlligent"
commandes systemes pour l'ejection d'un cd romlancer 2 commandes simultanement en perl
[Scripts Shell] Commandes find & echo - probleme d'affichageExecuter commandes externes via exec avec un apache chrooté
HELP:probleme ASM mes commandes BSF PORTA,1 ne marche pasCommandes pour executer une procédure sql à partir de php
java et commandes du système[commande DOS] invite de commandes multiple
Plus de sujets relatifs à : Invite de commandes ...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)