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

API, COM et SDKs Delphi Discussion :

[DOS] Problème affichage de DOS dans un Memo


Sujet :

API, COM et SDKs Delphi

  1. #1
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut [DOS] Problème affichage de DOS dans un Memo
    Salut
    voila, j'ai suivi les indications données (généreusement ) dans le forum pour afficher une commande DOS dans un TMemo...
    Seulement voila, ça ne marche pas
    Lorsque je lance une commande aussi simple que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      command.com /c dirc:\
    Mon programme freeze et ne répond plus...
    Est-ce qu'il y a une directive spéciale à ajouter?

    Note : je suis sous WinXP et Delphi 7
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  2. #2
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Fait voir le code un peu plus complet...
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  3. #3
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Ben en fait, le code, c'est exactement le code que j'ai trouvé dans un post... Je l'ai copié tel quel...
    Je vais essayer de le retrouver...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Voila, je crois que c'est Celui-là...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre habitué Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Points : 139
    Points
    139
    Par défaut
    J'execute la commande net view et je recupere le resultat dans un fichier que je charge apres dans mon memo.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    procedure TForm1.Attente;
     
    Var  StartInfo   : TStartupInfo;
         ProcessInfo : TProcessInformation;
         Fin         : Boolean;
    begin
      { Mise à zéro de la structure StartInfo }
      FillChar(StartInfo,SizeOf(StartInfo),#0);
      { Seule la taille est renseignée, toutes les autres options }
      { laissées à zéro prendront les valeurs par défaut }
      StartInfo.cb     := SizeOf(StartInfo);
     
       { cacher la fenetre}
      With Startinfo do
      begin
         cb := SizeOf(TStartupInfo);
         dwFlags := STARTF_USESHOWWINDOW;
         wShowWindow := SW_HIDE;
      end;
     
        { Lancement de la ligne de commande }
      If CreateProcess(Nil, '"cmd" "/c net view > c:\network.txt"', Nil, Nil, False,
                    0, Nil, Nil, StartInfo,ProcessInfo) Then
     
      Begin
        { L'application est bien lancée, on va en attendre la fin }
        { ProcessInfo.hProcess contient le handle du process principal de l'application }
        Fin:=False;
        Repeat
          { On attend la fin de l'application }
          Case WaitForSingleObject(ProcessInfo.hProcess, 200)Of
            WAIT_OBJECT_0 :Fin:=True; { L'application est terminée, on sort }
            WAIT_TIMEOUT  :;          { elle n'est pas terminée, on continue d'attendre }
          End;
          { Mise à jour de la fenêtre pour que l'application ne paraisse pas bloquée. }
          Application.ProcessMessages;
        Until Fin;
        { C'est fini }
        listage;
      End
      Else RaiseLastOSError;
     
    end;
    permet d'attendre que la commande soit finie. ensuite tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    memo1.Lines.loadFromFile('c:\network.txt');
    DeleteFile('c:\network.txt');

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    Il a y des composants qui permettent de récuperer la sortie standard sans passer par un fichier (j'ai peut être dit une bêtise )

    Il sert à quoi le command.com /c on peut pas faire un dir c:\ tout simplement ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    On peut bien récuperer la sortie standard via les pipe, je trouve ça plus propre que de passer par un fichier :

    http://delphi.about.com/cs/adptips2001/a/bltip0201_2.htm

    http://www.efg2.com/Lab/Library/UseNet/2001/0504b.txt

  8. #8
    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
    Citation Envoyé par cpdump
    Il sert à quoi le command.com /c on peut pas faire un dir c:\ tout simplement ?
    Command /C
    Démarre l'interpréteur de commande, éxécute une commande, puis se termine.

    cf. command /?


    Tu peux aussi utiliser le composant TDosCommand :
    http://laurent-dardenne.developpez.c...ionConsole.zip

  9. #9
    Membre actif
    Profil pro
    ----
    Inscrit en
    Mai 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ----

    Informations forums :
    Inscription : Mai 2004
    Messages : 185
    Points : 245
    Points
    245
    Par défaut
    Puré !!! Et dire que je me suis fait ch**r a comprendre comment fonctionner un Pipe !!!
    et cpdump arrive et me file la solution... Plein le dos de perdre du temps
    De toutes les choses que j'ai perdue,
    Celle qui me manque le plus...
    c'est mon esprit !

  10. #10
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    OK ben je vais essayer tout ça!!

    Un grand merci à tous
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

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

Discussions similaires

  1. Problème affichage appli DOS
    Par Goteffrot dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 20/07/2010, 18h31
  2. Problème affichage code html dans textEdit
    Par mercure07 dans le forum Qt
    Réponses: 5
    Dernier message: 10/09/2009, 10h59
  3. [W3C] problème affichage d'image dans iframe
    Par pas30 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 04/09/2007, 23h30
  4. Réponses: 2
    Dernier message: 20/09/2006, 21h37
  5. [DIV] [FireFox] Problème affichage du contenu dans un div
    Par jibouze dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 24/11/2005, 11h06

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