IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Passage de commande MSDOS


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Passage de commande MSDOS
    Bonjour,
    Je développe actuelement une application pour notre administrateur réseaux.
    J'utilise Delphi6 pro sous Win XP
    je passe la commande suivante:

    CommandeDos:='tracert -h 192.168.1.1>C:\TEMP\tracert.txt';
    WinExec(PChar(CommandeDos),SW_SHOW);

    Cela devrait donc me créer un fichier tracert.txt sous C:\TEMP\ contenant le résulat de mon tracert.
    Mais voilà rien ne se passe.....

    J'ai testé la commande directement sous l'invite de commande et là ça marche !??!

    Quelqu'un a-t-il une idée?
    Faut-il coder différemment les '\' ou le '>' ? Le passage des caractères de Delphi à MSDOS à t-il une subtilité comme celle là?

    Merci d'avance pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour

    Essayer ShellExecute. Je crois que c'est ce qui a emplacer WinExec depuis windows ???. (winexec conserver pour raison de conpatibilité).

  3. #3
    Invité
    Invité(e)
    Par défaut
    Chez moi, ça marche pas, mon fichier tracert.txt contient ça:
    tracert -h 192.168.5.122>C:\TEMP\tracert.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Un nom ou une adresse cible doit ˆtre sp‚cifi‚.
    Utilisationÿ: tracert [-d] [-h SautsMaxi] [-j ListeH“tes] [-w d‚lai] NomCible
    Optionsÿ:
       -d                 Ne pas convertir les adresses en noms d'h“tes.
       -h SautsMaxi       Nombre maximum de sauts pour rechercher la cible.
       -j ListeH“tes      Itin‚raire source libre parmi la liste des h“tes.
       -w d‚lai           Attente d'un d‚lai en millisecondes pour chaque r‚ponse.
    Il ne te manque pas un paramêtre (après le -h)?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Si j'ai fait un mauvais copier/coller

    CommandeDos:='tracert -h 10 192.168.1.1>C:\TEMP\tracert.txt';
    WinExec(PChar(CommandeDos),SW_SHOW);

    J'ai essayé ShellExeCute-->même résultat

  5. #5
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Utilise un fichier BAT et ShellExecute plutôt que WinExec.

    Fichier TRACE.BAT:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @echo off
    tracert -h 10 192.168.1.1>C:\TEMP\tracert.txt
    Attention, ta commande Dos à l'air d'être invalide et donc de lancer l'aide en ligne de la commande.
    Vérifie bien ta syntaxe...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PROGRAM gobat; 
    USES Forms,ShellApi; 
    BEGIN 
     ShellExecute(Application.Handle,NIL,'TRACE.BAT','','',0); 
    END.
    à+
    De retour parmis vous après 10 ans!!

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    la commande tracert -h 5 pop.wanadoo.fr>C:\TEMP\tracert.txt

    est valide et me génère bien le fichier texte dont voici un extrait:

    D‚termination de l'itin‚raire vers pop.wanadoo.fr [193.252.22.68]
    avec un maximum de 10 sautsÿ:
    1 1 ms 2 ms 1 ms *.*.*.*
    2 70 ms 67 ms 69 ms *.*.*.*
    3 71 ms 67 ms 67 ms *.*.*.*
    4 65 ms 68 ms 68 ms pos1-0.nraub303.________.francetelecom.net [*.*.*.*]
    5 69 ms 67 ms 68 ms pos5-

    mais lorsque je lance la commande DELPHI Par:
    WinExec(PChar('tracert -h 5 pop.wanadoo.fr>C:\TEMP\tracert.txt'),SW_SHOW);
    rien ne se passe

    Je préfèrerais ne pas passer par un .bat

    merci de vos réponses
    ________________________________
    [Edité par Lil_Jam63] Evitez de mettre des adresses IP

  7. #7
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je préfèrerais ne pas passer par un .bat
    Dans ce cas, je ne vois pas 36 solutions -> Développer ta propre fonction tracert.

    Tu trouveras ici les sources d'un projet avec ICS qui permet cette fonctionalité (entre autres):

    http://www.dergen.org/dossiers/dossiers.php?id_dossier=44

    à+
    De retour parmis vous après 10 ans!!

  8. #8
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    Essaye le composant TDosCommand, je crois qu'il permet ce genre de choses.
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

  9. #9
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Non lil_jam63!
    TDosCommand fonctionne uniquement avec un fichier BAT (lire la doc du compo)

    à+
    De retour parmis vous après 10 ans!!

  10. #10
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    Autant pour moi, je l'ai pas sous la main donc j'ai pas fais d'essais .
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

  11. #11
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Ce n'est pas par hasard que ce compo doit utiliser un fichier BAT...
    Tout simplement parce qu'il n'est pas possible de faire autrement!!
    DOS n'est plus le système d'exploitation aujourd'hui...
    A mon avis, lorsqu'on lance une commande dans le menu éxécuter, on crée un fichier BAT dynamique...

    à+
    De retour parmis vous après 10 ans!!

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci de vos réponses à tous, je crois qu'il ne me reste plus qu'a développer ma function tracert comme l'a dit Sub0

    Si qu'elqun d'autre à une idée, je suis preneur quand même,

    Je met le Tag résolu....mais pas tout à fait

    Encore merci à tous !!!!

  13. #13
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    Si tu ne veux pas faire de fichier bat parce qu'il est éditable, tu pourrais faire un fichier bat dynamique, c'est à dire, créer le fichier avec ta commande, exécuter le fichier bat et effacer le fichier.

    Qu'en pense-tu?
    Francis = Thor22 = Tholmir

  14. #14
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Je vous propose de regarder ce programme de test utilisant TCommandDos
    http://delphi.developpez.com/sources...rectionConsole

    TCommandDos utilise les pipes en association avec un shell ( Cmd.exe ).
    Code d'origine sur Community.borland.com :
    http://www.vmlinux.org/jakov/community.borland.com/10387.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XI] lancer BO avec commande MSDOS
    Par bimone dans le forum Deski
    Réponses: 4
    Dernier message: 10/12/2008, 18h45
  2. Passages de commandes sous pgsql (en étant connecté superutilisateur)
    Par enchanté dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 29/10/2008, 15h51
  3. succession de commandes MSDOS
    Par guideram dans le forum C++
    Réponses: 4
    Dernier message: 14/08/2007, 10h13
  4. si j'utilise les commande MSdos le PC s'éteint automatiquement
    Par devlopassion dans le forum Windows XP
    Réponses: 4
    Dernier message: 27/05/2007, 01h29
  5. Mettre resultat commande MSDOS dans variable
    Par vpovpo dans le forum Windows
    Réponses: 1
    Dernier message: 05/01/2007, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo