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 :

Comment fermer un programme en barre des tâches ?


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut Comment fermer un programme en barre des tâches ?
    Bonjour à tous,

    je souhaite stopper une application tournant en barre des tâches, cela pour pouvoir la fermer avant un reboot automatique du PC. Ce programme doit être fermé proprement car il enregistre des données essentielles durant cette fermeture.

    J'ai cherché une solution du côté du VBscript sans succès. De même j'ai cherché sur google durant des jours...

    Existe t'il une solution pour soit fermer automatiquement ce logiciel proprement ?

    Sinon y a 'til un moyen de le mettre au premier plan et de programmer un Alt/F4 ?

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Avec juste du batch/script, ça ne va pas être simple. Par contre, avec un petit exécutable, tu peux envoyer à l'application un message WM_CLOSE / WM_QUIT, qui est l'équivalent de cliquer sur la case de fermeture (croix rouge), ce qui la fera fermer en sauvegardant les données si elle est correctement programmée, via un petit réglage des options au besoin.

    Mais quand la session se ferme, les applications sont normalement prévenues par messages (WM_QUERYSHUTDOWN / WM_SHUTDOWN) et peuvent alors prendre les actions adéquates : si tu as accès au code source de l'application, c'est plutôt de ce côté qu'il faut regarder. Si elle est correctement développée, elle devrait demander quoi faire lors de la fermeture de session ou sauvegarder automatiquement, puis se fermer.
    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

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut
    Salut et merci pour le tuyau

    j'ai fais quelques recherches sur la fonction WM_CLOSE et j'ai trouvé ceci en VBA :

    Code vb : 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
    Option Explicit
     
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
     
    Private Const WM_CLOSE = &H10
     
    Private Sub Form_Load()
     
        Dim hWnd As Long
     
        hWnd = FindWindow(vbNullString, "Calculatrice")
        If hWnd <> 0 Then
            Call PostMessage(hWnd, WM_CLOSE, 0, 0)
        Else
            MsgBox "Impossible de trouver la fenêtre !", vbExclamation
        End If
     
    End Sub

    ça fonctionne sous excel, j'arrive à fermer ce que je veux.

    Est-il possible de transformer ça en executable ?

  4. #4
    Membre émérite
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Par défaut
    Salut;

    Quand Mac LAK fait allusion à un exécutable, il ne parle pas d'une macro ou d'un script VBA interprété, mais bien d'un langage de programmation. Dans la mesure où tu es débutant, et pour faire suite à ce qui a été dit dans le forum VBScript :

    Citation Envoyé par maxim_um Voir le message

    Enfin pour répondre à chris-57, un dernier mot sur le "code" VBA ci-dessus. Et bien, sache que c'est un script interprété (une macro), ainsi tu ne peux pas le compiler.

    Cela dit, ce serait quand même indécent de ma part de te laisser en plant. Je te poste une solution simple dans le forum Scripts/Batch
    Une solution simple serait de faire appel à «taskkill.exe».
    Si je prends pour exemple la calculatrice, ça s'écrirait de la manière suivante:

    Bonne continuation.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut
    salut maxim_um et merci de ton aide.

    J'avais déjà trouvé la commande taskkill, mais elle kill le processus et ne permet pas une fermeture "propre".


    Quoi qu'il en soit je vais utiliser la commande par Excel car je maitrise bien le VBA et il me sera facile de faire un petit fichier pour fermer mes programmes.

  6. #6
    Membre émérite
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Par défaut
    Citation Envoyé par chris-57 Voir le message

    J'avais déjà trouvé la commande taskkill, mais elle kill le processus et ne permet pas une fermeture "propre".
    Qu'est-ce qui te fait croire ça ?

    Enfin, si ça peut te rassurer, tu peux aussi utiliser l'utilitaire «cmdow», il peut être téléchargé depuis son site officiel, sinon sache qu'il est inclus dans le package «com.zip».

    Pour la calculatrice, la syntaxe serait succinctement de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cmdow calculatrice /cls

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 27/08/2014, 23h07
  2. Réponses: 7
    Dernier message: 01/08/2006, 16h02
  3. [barre des tâches]Faire clignoter mon programme
    Par Baptiste Wicht dans le forum Interfaces Graphiques en Java
    Réponses: 10
    Dernier message: 05/06/2006, 20h20
  4. Comment masquer le MessageBox de la barre des tâches ?
    Par Coussati dans le forum Langage
    Réponses: 7
    Dernier message: 25/08/2003, 14h33

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