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

Lazarus Pascal Discussion :

[Windows] Utilisation de TProcess [CommandLine] [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Invité
    Invité(e)
    Par défaut [Windows] Utilisation de TProcess [CommandLine]
    Bonjour,

    Est-il possible de faire exécuter en console un File.bat à partir d'un TProcess.CommandLine et d'une manière générale plusieurs commandes DOS séquentiellement dans le même TProcess.CommandLine? Je dispose d'un File.bat qui me permet de construire quotidiennement laz/fpc à partir des sources laz/trunk et fpc/trunk. Mais il faut le paramétrer chaque jour... avec Lazarus, je limiterai cette contrainte et surtout l'automatiserait. Je configurerai ce dont j'ai besoin et la procédure (longue) tournerait dans un coin et m'installerai la nouvelle version (tout en conservant les autres) sur mon HD.

    Seulement le CommdandLine := 'File.bat' ne fonctionne pas. Ce n'est pas un problème de "Reading large output" : une commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ''svn.exe co "' +
                edSVNLAZaddress.Text + '"  "' +
                ExcludeTrailingPathDelimiter(gsCiblePath)+
                '"';
    chargement de svn lazarus passe très bien.

    Ce sont les lignes affectées à la construction/compilation qui ne passent pas.
    Je pourrais exécuter plusieurs CommandLine séquentiellement [ce que je fais pour 90% du prog.] mais à ce moment c'est impossible : si j'exécute un ordre cd c:\monRep par un CommandLine puis un second monProg.exe par un autre commandLine, "l'environnement" se perd : autrement dit monProg.exe ne s'exécute pas car le placement cd:\monRep (qui contient monProg.exe) que l'on obtiendrait dans un cmd est perdu...
    Dans l'exemple la solution est évidente, il suffirait de saisir : c:\monRep\monProg.exe. Mais sur des séquences de construction de laz/fpc à partir des sources laz/trunk et fpc/trunk, le fait de pouvoir chainer les lignes est indispensable.

    Merci. Gilles
    Dernière modification par Invité ; 15/10/2012 à 10h12.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Quelle andouille je suis ! J'avais déjà rencontré un problème proche sous Nux -il y a 2 ans, c'est vrai- et la réponse de Batyann811 (p'tit bonjour en passant) contenait la solution.

    Dans le cas présent, sur le principe* :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aProcess.commandline:='cmd.exe /c c:\File.bat';
    ... ouvre un seul cmd puis exécute chaque ligne de File.bat...alors qu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aProcess.commandline:='c:\File.bat';
    ... ouvre un cmd à chaque ligne du File.bat et donc perd l'environnement de chaque cmd comme s'ils étaient ouverts en parallèle !

    Cordialement. Gilles

    * il ne faut pas oublier de gérer le "Reading large output"... et rediriger dans un TMemo pour voir ce qu'il se passe en "temps réel", l'affichage du CommandLine (qui reste freeze si visible) puisque le Read est redirigé dans cette configuration vers "a temp Memorystream is used to buffer the output" ...
    Dernière modification par Invité ; 17/10/2012 à 11h55. Motif: Orhographe (oups)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/12/2007, 10h35
  2. [service windows] Utilisation de CRecordset
    Par plopoyop dans le forum Windows
    Réponses: 0
    Dernier message: 13/08/2007, 12h52
  3. [API Windows] Utiliser le hDC avec un EDIT
    Par Dev-FX dans le forum Visual C++
    Réponses: 3
    Dernier message: 07/04/2007, 15h53
  4. [C++][Message Windows] Utilisation de postmessage
    Par rosewood00 dans le forum Windows
    Réponses: 1
    Dernier message: 17/12/2006, 12h31
  5. [Windows]utiliser une dll c# en java
    Par dude666 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 01/07/2005, 02h19

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