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 :

Fermer une application Windows


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 15
    Par défaut Fermer une application Windows
    Hello...


    Je cherche un moyen en Perl de faire ceci :
    http://<br /> http://www.developpez...3a3d7c9b<br />
    Au cas ou le lien ne fonctionne pas :
    Un programme perl capable de fermer une application windows.


    J'avais penser a un truc du genre :

    L'execution du programme la premiere fois :
    - lance l'application
    - Récupère le PID
    - Le stocke dans un fichier

    L'execution du programme la deuxieme fois :
    - Lit et supprime le fichier
    - Recupere le PID
    - Ferme l'application

    etc..

    Y'a t'il une librairie capable de gérer ca ?

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Bonjour,

    sur des machines NT/2000, tu peux employer les PsTools. Ce sont des utilitaires MsDos forts pratiques (http://www.sysinternals.com) qui émulent les commandes top, ps, kill (entre autres) bien connues sous Unix.

    Via l'un de ces utilitaires (Pslist.exe de mémoire), tu peux récupérer les PID de tous les programmes chargés en mémoire. Via un autre utilitaire (Pskill.exe), tu peux les flinguer de la même manière que si tu passais par le gestionnaire de tâches de 2000.

    Autrement formulé, ton programme pourrait fort bien lancer Pslist pour récupérer le PID du programme que tu veux stopper et lancer Pskill pour y parvenir.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 15
    Par défaut
    Merci, ça fonctionne d'enfer !!!!
    En plus on a pas besoin du PID, pskill ferme l'application avec son nom.


    Encore un Grand MERCI !!!

    Ce post n'a plus rien a faire dans le perl

  4. #4
    Invité de passage
    Inscrit en
    Février 2003
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1
    Par défaut
    salut telecnop

    Comment faire pour developper une tel fonctionnement comment en batch peut on faire ce que tu ecrit :

    J'avais penser a un truc du genre :

    L'execution du programme la premiere fois :
    - lance l'application
    - Récupère le PID
    - Le stocke dans un fichier

    L'execution du programme la deuxieme fois :
    - Lit et supprime le fichier
    - Recupere le PID
    - Ferme l'application

    etc..

    Je ne suis pas un developpeur, mais si tu peux me donner des tuyaux

    merci

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Citation Envoyé par telecnop
    Merci, ça fonctionne d'enfer !!!!
    En plus on a pas besoin du PID, pskill ferme l'application avec son nom.

    Encore un Grand MERCI !!!

    Ce post n'a plus rien a faire dans le perl
    Tu peux toujours lancer pskill via un script Perl et contrôler que le prog a bien été fermé.

    Perl peut toujours servir à quelque chose

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Par défaut
    J'ai essayé d'utiliser pslist, mais celà me renvoi l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PsList 1.26 - Process Information Lister Copyright (C) 1999-2004 Mark 
    Russinovich Sysinternals - www.sysinternals.com Processor performance 
    object not found on PC1036 Run Exctrlst from the Windows Resource Kit to 
    repair the performance counters.
    mon code d'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $sortie = qx(PsTools/pslist.exe);

    Quelqu'un a une idée ?

  7. #7
    Membre éclairé Avatar de scaleo
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 327
    Par défaut
    Ou est l'interet d'utiliser des programmes externe pour killer une application sous windows et pour récupérer sont PID ?

    si tu veut récupérer la liste des applications en route sous Windows il suffit de lancer la commande , pour ce qui est de tuer une application par sont pid c'est tout aussi simple Je n'arrive pas comprendre cette manie de toujours chercher des applications émulant unix alors que les meme commandes son dispo sous windows mais sous un autre nom c'est tout . Génération DOS powered

    voila

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Par défaut
    En effet je connaissais pas.
    Le problème est que cette commande n'est pas disponible sur tous les windows.

    De plus, j'ai le meme problème, je n'arrive à a récupérer correctement la sortie dans mon script perl... j'ai une erreur d'execution du prog, qui retourne une erreur

  9. #9
    Membre éclairé Avatar de scaleo
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 327
    Par défaut
    Pour ceux qui ne connaisse pas voici la liste des options de taskkill


    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    TASKKILL [/S systŠme] [/U utilisateur [/P mot_de_passe]]]
             { [/FI filtre] [/PID ID_processus | /IM image] } [/F] [/T]
     
    Description :
        Cet outil de ligne de commande peut ˆtre utilis‚ pour mettre fin … une ou plusieurs tƒches ou processus.
        Les processus peuvent ˆtre supprim‚s par l'id de processus ou le nom de l'image.
     
    Liste des paramŠtres :
       /S    systŠme         Sp‚cifie le systŠme distant auquel se connecter.
     
        /U    [domaine\]utilisateur  Sp‚cifie le contexte utilisateur sous lequel
                               la commande doit s'ex‚cuter.
     
       /P      [mot_de_passe]    Sp‚cifie le mot de passe pour le
                               contexte utilisateur donn‚. Il est demand‚ s'il est omis de la ligne de commande.
     
        /F                           Force la fin d'ex‚cution
                                        du ou des processus.
     
       /FI     filtre          Affiche un ensemble de tƒches qui correspond
                               au critŠre sp‚cifi‚ par le filtre.
     
        /PID     ID_processus       Sp‚cifie la valeur PID du processus qui
                                        doit ˆtre arrˆt‚.
     
        /IM     image          Sp‚cifie le nom d'image du processus
                                        qui doit ˆtre arrˆt‚. Le caractŠre g‚n‚rique '*'
                                        permet de sp‚cifier tous les noms d'images.
     
        /T                  Terminer l'arborescence : arrˆte le processus sp‚cifi‚
                               et tous les processus enfant qu'il a d‚marr‚s.
     
        /?                    Affiche cet ‚cran d'aide.
     
     
    Filtres :
        Nom du filtre   Op‚rateurs valides          Valeurs valides
        -------------   ------------------          -------------------
        STATUS          eq, ne                      RUNNING | NOT RESPONDING
        IMAGENAME       eq, ne                      Nom d'image
        PID             eq, ne, gt, lt, ge, le      Valeur PID
        SESSION         eq, ne, gt, lt, ge, le      Num‚ro de session
        CPUTIME         eq, ne, gt, lt, ge, le      Heure valide au format
                                                    hh:mm:ss.
                                                    hh - heures,
                                                    mm - minutes, ss - secondes
        MEMUSAGE        eq, ne, gt, lt, ge, le      M‚moire utilis‚e, en Ko
        USERNAME        eq, ne                      Nom d'utilisateur [domaine\]utilisateur
                                                    est le format utilis‚
        MODULES         eq, ne                      Nom de DLL
        SERVICES        eq, ne                      Nom de service
        WINDOWTITLE     eq, ne                      Titre de la fenˆtre
     
    Remarque : le caractŠre g‚n‚rique '*' n'est accept‚ qu'avec les filtres.
     
    Remarque : l'arrˆt des processus distants sera toujours forc‚,
          que l'option /F soit utilis‚e ou non.
     
    Exemplesÿ:
        TASKKILL /S systŠme /F /IM notepad.exe /T
        TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
        TASKKILL /F /IM notepad.exe /IM mspaint.exe
        TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne sans*"
        TASKKILL /F /FI "USERNAME eq AUTORITE NT\SYSTEM" /IM notepad.exe
        TASKKILL /S systŠme /U domaine\utilisateur /FI "USERNAME ne NT*" /IM *
        TASKKILL /S systŠme /U utilisateur /P mot_de_passe /FI "IMAGENAME eq note*"
    Peut tu poster l'erreur que renvoie perl

Discussions similaires

  1. Fermer une application externe
    Par jean tof dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/05/2006, 16h18
  2. [C#] [VS.NET] Réutiliser une Form d'une application windows?
    Par yannick_sch dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/10/2004, 14h28
  3. Focus sur une application Windows
    Par mixi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/10/2004, 19h57
  4. [VB6]Fermer une application avec VB
    Par Mylou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/04/2003, 21h32
  5. Fermer une application à l'aide de OnIdle
    Par Thierry Rapp dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/08/2002, 12h44

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