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

Scripts/Batch Discussion :

Ouverture de programme, si inactif


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Ouverture de programme, si inactif
    Bonjour,

    Je travaille actuellement sous Windows Serveur 2003 où j'héberge un serveur FTP qui tourne sous TypSoft.

    J'aimerais sécuriser la disponibilité du serveur, en créant un batch qui :

    - vérifie si le programme est actif
    / ferme la commande si le programme est actif
    - lance l'exécutable si le programme est inactif
    / ferme la commande

    Je m'occuperai ensuite de créer une tâche planifiée pour lancer le .bat régulièrement.

    Pouvez vous m'aider à faire ça ?
    D'avance merci à ceux qui posteront.
    Cdlt

    ps: j'ai identifié cette solution, mais il y en a peut être une autre meilleure.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut
    Bonjour
    qu'entends tu par actif inactif ?

    si tu veux qu'un programme est lancé = processus actif dans le gestionnaire des tâches.

    tasklist /? pour lister les processus

    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
    Exemple avec firefox :
    
    
    @echo off
    tasklist | findstr /i "Firefox.exe" >nul
    goto :%errorlevel%
    :0
    echo Firefox lanc, && goto :eof
    :1
    echo Firefox non trouv,
    goto starter
    
    :starter
    start firefox.exe
    PAUSE
    @exit

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour Acris,

    Oui, c'est tout à fait ça, je voulais dire "programme lancé = processus actif".

    Du coup je ais tester ton code.

    Merci pour ta réponse.

  4. #4
    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
    Salut,
    une autre solution avec PowerShell V2 :
    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
    #Lire les remarques sur la page suivante :
    # http://community.bartdesmet.net/blog...8/30/4366.aspx
    $ProcessInfo=$null
    $sbPI={
     Unregister-Event "ProcessInfo.Exited" -ea "SilentlyContinue"
     $ProcessInfo=get-process notepad -ea "SilentlyContinue" 
     if ($ProcessInfo -eq $null) 
      {
        Write-Debug "Start Notepad.exe"
        $ProcessInfo=Start-Process "notepad.exe"
      }
     $null=Register-ObjectEvent $ProcessInfo Exited -SourceIdentifier ProcessInfo.Exited –action ($sbPI -as [Scriptblock])
    } 
     #Démarre "l'auto surveillance"
    &$sbPI
     #Si on ferme la console PowerShell ce mécanisme est rompu.
    #pour arrêter  
    #Unregister-Event "ProcessInfo.Exited" -ea "SilentlyContinue"
    Ce traitement est peut être possible avec WMI, voir les événements extrinsèques, dans ce cas plus besoin de tâche planifiée.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses.

    @ Acris : Ta solution fonctionne très bien, par contre, je me retrouve bloqué sur un truc tout bête. Je n'arrive pas à ouvrir tous mes programmes avec le starter. Par exemple, le script fonctionne bien sur firefox.exe ou thunderbird.exe, mais pas avec flezilla.exe. A noter : la fonction executer sous windows ne les ouvre pas non plus. (j'ai effectué les tests sous vista et windows serv2003

    Autre détail, une fois le programme ouvert grâce au script, la commande reste ouverte. Étant donné que je souhaite l'exécuter régulièrement, est il possible de la fermer automatiquement ?

    @ Laurent Dardenne : J'avoue ne pas savoir du tout comment utiliser cette solution via PowerShell. J'ai vraiment peu de connaissances à ce niveau, d'où ce topic.

    Merci pour vos participations.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut
    Pour lancer un programme non "attaché à windows" tu dois indiquer le chemin de ton executable
    et parfois le start n'est pas obligatoire.

    essaie juste :

    "%programfiles%\FileZilla\FileZilla.exe"
    tu supprimes le Pause pour fermer la fenetre avec le @exit

    si ça ne fonctionne pas

    mettre un taskkill cmd.exe

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Acris,

    Avec un peu de retard, merci pour tes réponses, j'ai réussi à mettre en place ce que je voulais!

  8. #8
    Rédacteur
    Avatar de Benj.
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2009
    Messages
    839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 839
    Points : 1 849
    Points
    1 849
    Par défaut
    Etant donné que c'est un serveur sur lequel ton FTP tournes, je vais supposer que TypSoft est utilisé en tant que service.

    Si c'est bien le cas, tu peux dès lors utiliser l'option "Récupération" proposée pour le service concerné et ainsi lancer/exécuter n'importe quel batch/application lors des première, seconde et autres défaillances.

    Il suffit alors de choisir Exécuter un programme comme option dans la liste déroulante pour chacune des défaillance proposée.

    En espérant avoir aidé.
    Bazinga !

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/10/2013, 18h48
  2. Ouvrir une application à l'ouverture du programme
    Par getz85 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 05/05/2008, 09h41
  3. empecher l'ouverture de programme
    Par thib42 dans le forum VB.NET
    Réponses: 5
    Dernier message: 08/04/2008, 19h03
  4. ouverture de programmes
    Par dede3137 dans le forum Windows XP
    Réponses: 2
    Dernier message: 09/11/2007, 18h13
  5. Action à l'ouverture du programme
    Par Matalobos dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 01/05/2007, 15h43

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