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 Perl Discussion :

[langage] fentetre MS DOS en background???


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Par défaut [langage] fentetre MS DOS en background???
    Re,

    Une autre petite question,
    J'ai un script qui lance plusieurs fois des fenetres dos pour executer un outil en commande, je dois lancer une dizaine de fois cet outil et a chaque fois j'ouvre une nouvelle dos,(par la commande system) mais le probleme c que ds que la fenetre s'affiche elle se met en premier plan, cad je voudrais qu'il fais fasse son deroulement du script perl avec affichage des infos etc... mais ss que les fentres dos se mettre au premier plan ce qui est tres chiant car on ne peut pas faire autre choses en meme temps car si on ecris un mail par exemple, au bout d'un moment, on est obliger de reselectionner la fenetre du mail. et ainsi de suite..

    donc j'aimerais savoir si c possible avec la command system de pouvoir le cmd en background ss que la fenetre se mettre au premier plan....

    MErci d'avance,

  2. #2
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 50
    Par défaut
    Peut-être, la solution est ici (Listing 5):

    http://www.winnetmag.com/WindowsScri...99/pg/2/2.html

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Par défaut
    en là je galere pour faire fonctionner le script car j'ai des probleme avecle module win32::API::prototype il est fourni ds le zip le fichier prototype mais apres pfffffffffffffff.... j'arrive pas ds si tu arrives, ca m'aideras bcp...

    merci

  4. #4
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 50
    Par défaut
    Et si tu tapes

    ppm install http://www.roth.net/perl/packages/win32-api-prototype.ppd
    Chez moi, c'est déroulé comme ça:

    ====================
    Install 'Win32-API' version 0.41 in ActivePerl 5.8.2.808.
    ====================
    Installing C:\Perl\site\lib\auto\Win32\API\API.bs
    ...
    Installing C:\Perl\site\lib\Win32\API\Type.pm
    Successfully installed Win32-API version 0.41 in ActivePerl 5.8.2.808.
    ====================
    Install 'win32-api-prototype' version 0.2002.12.17 in ActivePerl 5.8.2.808.
    ====================
    Installing C:\Perl\site\lib\Win32\API\Prototype.PM
    Successfully installed Win32-API-Prototype version 0.2002.12.17 in ActivePerl 5.
    8.2.808.
    Et puis le script de 'Listing 5' va bien.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Par défaut
    en faite je dois avoir un problem la commande se lance pas , mais je suppose que cela est du au faite que j'ai un proxy surement!! ds ma boite!!

    je crois qu'il faut configurer ppm pour pouvoir l'utliser...

    apres j'en sais pas plus

  6. #6
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 50
    Par défaut
    Pardon, Ludo! Tout est beaucoup plus simple.

    Supposons que tu lances C:\prog.exe. Donc, pour le démarrer minimisé il suffit d'écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `start /MIN c:\\prog.exe`

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Par défaut
    j'ai essayé ds ton exemple mais je n'arrive pas a l'adapter a mon prog , ci dessous le bout de prog, et c po une dizaine, mais une centaine ca dure 45 min cette boucle donc...

    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
     
    # Define the directory for the output Files
     
      $Output =  $LintOutputDir . "\\Lint_". $LocalTime .".log";
     
      # Define the extension to match
     
      my $Type = " *.cpp";
     
     
      ## Loop permitting to analyse each folder with pc lint
      foreach my $path (@SniffSsourceFileProject)
        {
        # Change the current path
        chdir $path;
        # Launch a command and GET the ID of this process
        $ProcessID = system(1,"\"%LINT_ROOT%\\Lint-nt.exe \" $LintOptionDir $Type >> $Output") or die "error";
        # Wait that the Process finish
        waitpid( $ProcessID, 0) if $ProcessID !=0 ;
        }
    merci bcp si tu trouve un truc car je vois pas!!!

  8. #8
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 50
    Par défaut
    Ton system n'est pas le system standart (http://www.perldoc.com/perl5.8.4/pod/func/system.html), non? La le 1er argument est la commande et la valeur est le code de terminaison, pas le PID. Et puis le system standart attend le processus, donc waitpid est inutile.

    En tout cas, il me semble que ton code doit être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      my $Type = " *.cpp"; 
      foreach my $path (@SniffSsourceFileProject) 
        { 
         chdir $path; 
        `start /MIN \"%LINT_ROOT%\\Lint-nt.exe \" $LintOptionDir $Type >> $Output")`; 
        }

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Par défaut
    ca ne marche pas cela me marque une erreur comme koi il ne peut pas executer le programe $LintOptionDir mais ca c'est pas un programme c un parametre de Lint-nt... ouepssss
    et ss le pid il n'attends pas j'ai déja essay il continue son chemin, sujet d'un messsage déjà on avait tous reflechis un a ce sujet et po trouver de reponse...
    je vais rechercher ce qujet et j'ai réussi a faire fonctionner comme ca...

    merci

  10. #10
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 50
    Par défaut
    Et si tu fais un wrapper ('emballage') pour lint?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # fishier lint.pl:
    `%LINT_ROOT%\\Lint-nt.exe $LintOptionDir $Type >> $Output`;
     
    #ton fishier:
    `start /MIN ../lint.pl`
    Le wrapper peut bien être un .cmd (.bat).

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

Discussions similaires

  1. [langage] fichier DOS et unix, retour chariot Mac unix
    Par Kinethe dans le forum Langage
    Réponses: 5
    Dernier message: 25/10/2004, 14h05
  2. [langage] script en background
    Par Tuxico dans le forum Langage
    Réponses: 5
    Dernier message: 04/10/2004, 19h32
  3. [langage] Etendre les noms de fichier DOS
    Par jmartin dans le forum Langage
    Réponses: 4
    Dernier message: 13/07/2004, 13h32
  4. [langage] fonction sleep + probleme fenetre dos
    Par yokito dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2003, 19h46
  5. [langage] Commande DOS dans un programme
    Par Jibees dans le forum Langage
    Réponses: 15
    Dernier message: 23/04/2003, 12h08

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