Invite de commandes ... - C++ - Programmation
Marsh Posté le 27-08-2004 à 22:41:16
Taz a écrit : int main(int argc, char *argv[] |
non
Marsh Posté le 28-08-2004 à 00:50:17
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.
Marsh Posté le 28-08-2004 à 01:24:33
excusez moi mais.. pourquoi le premier truc posté par Taz va pas ?
c'est pas du C++ c'est pour ça ?
Marsh Posté le 28-08-2004 à 01:32:37
si sa en est ( je pense) je suis sur a 70% mais bon de oute facon je suis pas competant snif
Marsh Posté le 28-08-2004 à 03:21:39
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.
Marsh Posté le 28-08-2004 à 10:10:17
raytaller a écrit : excusez moi mais.. pourquoi le premier truc posté par Taz va pas ? |
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 .
Marsh Posté le 28-08-2004 à 10:17:35
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)
Marsh Posté le 28-08-2004 à 14:37:10
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.
Marsh Posté le 28-08-2004 à 18:55:47
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
Marsh Posté le 28-08-2004 à 20:01:02
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 ...
Marsh Posté le 29-08-2004 à 02:28:17
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
Marsh Posté le 29-08-2004 à 09:45:20
ReplyMarsh Posté le 29-08-2004 à 15:23:45
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é).
Marsh Posté le 30-08-2004 à 22:31:59
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.
Marsh Posté le 27-08-2004 à 22:32:17
Hello all
et merci de vos réponses ++
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