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 :

[DOS] Redirection ne fonctionne pas


Sujet :

Langage 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] Redirection ne fonctionne pas
    Salut à tous
    Etant un nouveau (et heureux) propriétéaire du bouquin D7 de O DAHAN et P TOTH, je me suis empressé de tester quelques trucs...
    Quelle ne fut pas ma joie, en voyant un exemple sur la redirection DOS dans un Memo...
    Pour la petite histoire, chez moi, ça ne marche PAS... Même avec les exemples donnés sur DVP...
    Je m'éxécute donc et ouvre ce projet... Je lance et là, rien -tristesse-...
    Pas de message d'erreur, seulement un blocage de l'appli pendant 1 ou 2 secondes puis rien... Le néant total... Ca n'affiche strictement rien...
    Quelqu'un a-t-il déjà eu ce problème? Si oui, comment l'a-t-il réglé?
    Merci d'avance
    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
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Rappelle moi quel chapitre c'est.
    Je vais vérifier, mais je ne me souviens pas d'avoir eu un problème
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  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
    Je n'ai pas le bouquin sous la main mais c'est le chapitre sur les processus...
    En fait, chez moi, aucun exemple que l'on m'a donné n'a marché...
    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
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    J'ai la même erreur. Etrange, c'est pas normal. Je regarde.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  5. #5
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Pedro, MD : Allez sur mon site, téléchargez mon unité "LakUtils", et essayez la méthode "Lak.Shell.ExecuteAndCapture" : il fait la distinction entre applis 16 bits et applis 32 bits. L'erreur vient (peut-être) de là car la méthode de capture est différente.

    Par contre, si le programme sort directement sur la sortie vidéo (c'était le cas de nombreux programmes DOS), la capture est tout simplement impossible.
    Idem si le programme ne sort que sur stderr au lieu de stdout : ce flux n'est pas (normalement) capturé.

    Pouvez-vous me donner le résultat de vos essais ?
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  6. #6
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Voici le code. L'exécution refuse de passer par le ReadFile :
    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
    procedure run(cmd:string; txt:TStrings);
    var
     PipeIn  :THandle;
     PipeOut :THandle;
     
     StartupInfo: TStartupInfo;
     ProcessInfo: TProcessInformation;
     
     Buffer: array[0..4096] of Char;
     NbRead: DWord;
    begin
    // Créer un pipe d'entrées/sorties
     CreatePipe(PipeIn,PipeOut,nil,0);
    // Créer le process en redirigeant les E/S
     FillChar(StartupInfo, SizeOf(TStartupInfo),0);
     StartupInfo.cb         :=SizeOf(TStartupInfo);
     StartupInfo.dwFlags    :=STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
     StartupInfo.wShowWindow:=SW_HIDE;
     StartupInfo.hStdInput  :=PipeIn;
     StartupInfo.hStdOutput :=PipeOut;
     StartupInfo.hStdError  :=PipeOut;
     CreateProcess(nil,PChar(cmd),nil,nil,True,0,nil,nil,StartupInfo,ProcessInfo);
    // attendre la fin du process
     WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
    // Fermer la sortie
     CloseHandle(PipeOut);
    // pour relire le tout
     while ReadFile(PipeIn,Buffer,4096,NbRead,nil) do txt.Add(Buffer);
    // fin
     CloseHandle(PipeIn);
    end;
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  7. #7
    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
    Un article sur le sujet
    Il existe aussi un composant dans la section Source.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 82
    Points : 85
    Points
    85
    Par défaut
    chez moi aussi cet exemple ne fonctionnait pas.

    peut être un problème de compatibilité 9x-nt ?

  9. #9
    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
    Citation Envoyé par Mac LAK
    Pedro, MD : Allez sur mon site, téléchargez mon unité "LakUtils", et essayez la méthode "Lak.Shell.ExecuteAndCapture" : il fait la distinction entre applis 16 bits et applis 32 bits. L'erreur vient (peut-être) de là car la méthode de capture est différente.
    Merci Mac LAK, j'ai chopé tes sources... Je crois même que je les avais déjà mais je ne les avais pas encore regardées...
    Je savais effectivement qu'il y avait un problème entre 16 et 32bits... Mais je lance des fontions de base dir style "dir" (enfin: "Cmd.Exe /c Dir") ou l'exemple du bouquin D7 evec la commande ping... Y en a pas un qui marche...
    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

  10. #10
    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
    Je m'était penché sur le sujet pour faire un front end graphique, et j'avais trouvé cela : http://delphi.about.com/library/bluc/apps/consoleingui.zip

  11. #11
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Pedro204
    Merci Mac LAK, j'ai chopé tes sources...
    Mais la vraie question reste : ça marche, sur ton exemple ?
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  12. #12
    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
    Citation Envoyé par Mac LAK
    Mais la vraie question reste : ça marche, sur ton exemple ?
    Ben tu auras la vrai réponse demain quand j'aurai pu tester ton code
    Je suis au taf et je n'ai pas Delphi sous la main
    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

  13. #13
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    T'as une drôle de notion de "demain", Pedro...

    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  14. #14
    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 ne suis pas sur, mais il me semble qu'il faut éxécuter le programme hors de l'edit... non ?
    Ou bien cela doit dépendre de l'OS... Quel est votre système ?
    De retour parmis vous après 10 ans!!

  15. #15
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Sub0
    Je ne suis pas sur, mais il me semble qu'il faut éxécuter le programme hors de l'edit... non ?
    Ou bien cela doit dépendre de l'OS... Quel est votre système ?
    Sur 2000 et XP, en tout cas, j'ai déjà capturé des sorties de plusieurs mégas au sein même du debugger, avec mon unité...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  16. #16
    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
    Citation Envoyé par Mac LAK
    T'as une drôle de notion de "demain", Pedro...
    Euh oui... La prochaine fois, promis, je ne fais pas 36000 choses à la fois et j'essaie ton code...
    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

Discussions similaires

  1. Response.Redirect() ne fonctionne pas
    Par Daklum dans le forum ASP.NET
    Réponses: 27
    Dernier message: 20/09/2010, 13h32
  2. [PHP 5.2] La redirection ne fonctionne pas
    Par beegees dans le forum Langage
    Réponses: 1
    Dernier message: 17/05/2009, 20h39
  3. [URL rewriting] la redirection ne fonctionne pas
    Par jobo13 dans le forum Apache
    Réponses: 2
    Dernier message: 08/03/2009, 18h51
  4. redirections ne fonctionne pas
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 22/09/2006, 10h05
  5. [CSV] Redirection ne fonctionne pas
    Par Brizzio dans le forum Langage
    Réponses: 12
    Dernier message: 16/12/2005, 10h55

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