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

C++Builder Discussion :

Sous Windows 7, empêcher la fermeture de l'application à partir de la miniature de la barre des tâches


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Points : 112
    Points
    112
    Par défaut Sous Windows 7, empêcher la fermeture de l'application à partir de la miniature de la barre des tâches
    Salut.

    Je souhaite que mon application ne puisse pas être fermée en utilisant la petite croix rouge que l'on trouve dans la miniature affichée quand on laisse trainer le curseur sur l'appli dans la barre des tâches, sous Windows 7.
    Au même titre que l'on peut griser la croix rouge dans la fenêtre de l'application elle-même, il doit bien exister une API pour gérer la croix affichée dans la miniature ?
    Une idée ?

    Merci d'avance...

  2. #2
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Tu dois intercepter le message WM_CLOSE et faire ce que tu veux (ou ne rien faire).

  3. #3
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Points : 112
    Points
    112
    Par défaut
    Je n'avais pas pensé à ça.
    Ce n'est pas tout à fait ce que je voulais faire mais le résultat attendu est pas mal quand même.
    Merci pour l'info.

    A toutes fins utiles, si quelqu'un sait comment personnaliser (si c'est possible) les boutons contenus dans l'aperçu de la barre des tâches sous W7, je suis preneur

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 666
    Points : 25 463
    Points
    25 463
    Par défaut
    N'ayant pas Seven, je ne peux pas vraiment aider !
    Mais ni OnClose ni OnCloseQuery n'est lancé par l'utilisation de cette croix ?

  5. #5
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Points : 112
    Points
    112
    Par défaut
    Salut ShaiLeTroll.

    Le problème n'est pas là.
    Biensûr que les événements OnClose et OnCloseQuery sont déclenchés.
    Mais je vois les choses différemment.
    Si j'utilise ces événements et si l'utilisateur clique sur cette petite croix pour fermer l'application, je vais être obligé de l'informer que pour fermer l'application, il ne faut pas utiliser cette méthode mais plutôt cliquer sur un bouton précis. Au final, 3 clics pour fermer (1 sur la croix, 1 sur la messagebox, et 1 sur le bon bouton).
    Si je grise ou je rends invisible cette croix, l'utilisateur ne pourra fermer l'application autrement qu'en cliquant sur le bouton approprié, et là, 1 seul clic.
    Ca peut paraître léger comme raisonnement, mais quand c'est répétitif, le moindre clic compte.
    Je suis peut être de la vieille école où on économisait les clics et les octets de mémoire ...

  6. #6
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    A mon avis dans ton cas tu devrais utiliser une fenêtre sans borders et créer tes propres boutons.

  7. #7
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Points : 112
    Points
    112
    Par défaut
    Le hic, c'est que la fenêtre, ce n'est pas moi qui la gère, c'est le système qui l'affiche.
    Je parle de la petite fenêtre d'aperçu de l'appli qui apparait quand tu laisses trainer le curseur de la souris sur la barre des tâches !

  8. #8
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Salut, j'ai une question qui peut paraître stupide. Pourquoi mettre l'icône dans la barre de tâche alors?

    Code pour enlever l'ancien menu Fermer (au cas ou sa t'aiderais):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HMENU MyMenu = GetSystemMenu(Handle, false);
    RemoveMenu(MyMenu, SC_CLOSE, MF_BYCOMMAND);

  9. #9
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Points : 112
    Points
    112
    Par défaut
    Merci pour le code de l'ancien menu Fermer.
    Je connaissais et c'est d'ailleurs déjà implémenté.

    Pour répondre à ta question concernant l’icône dans la barre des tâches, et bien, c'est juste pour pouvoir restaurer la fenêtre de l'application quand cette dernière a été minimisée

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 666
    Points : 25 463
    Points
    25 463
    Par défaut
    Regarde ITaskbarList et son évolution ITaskbarList3::ThumbBarUpdateButtons



    Ne t'inquiète pas pour l'économie des octets et des clics, je te comprends très bien, j'ai fait bcp d'appli de saisie, hors de question d'utiliser la souris, tout au clavier, c'est plus rapide, à la limite de devoir reprendre des raccourcis des anciennes Applis DOS ou AS400 !

    Ce que je ne comprends pas, c'est le besoin d'avoir qu'un seul point de fermeture !
    (là où je suis c'est pareil, ils ont fait la même chose
    Peu importe d'où est fermée l'application, tant que l'on sait qu'elle l'est on peut faire les traitements adéquats !
    Car, il faut aussi penser au ALT+F4, le double-clic sur l'icone, le clic sur la croix plus toutes les nouveautés !

    EDIT : Le monde est petit : "Utilisez la barre des tâches Windows 7 dans vos applications Delphi 2010"

  11. #11
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Points : 112
    Points
    112
    Par défaut
    Salut ShaiLeTroll,

    Tu as raison pour les différents points d'entrée pour accéder à la fermeture de la fenêtre, d'autant qu'on ne peut pas prévoir quelles seront les évolutions de Windows quant à ce sujet.
    Comme le disait TheGzD dans un des premiers posts, il suffisait d'intercepter le message WM_CLOSE. De cette façon, on arrive au même résultat, quelle que soit la méthode utilisée.
    Cependant, merci à toi d'avoir fourni les liens sur la gestion de la barre des tâches de W7, c'est exactement ce que je cherchais et c'est toujours intéressant de se documenter sur les nouveautés (la barre de progression dans le bouton par exemple !).

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/11/2014, 22h38
  2. [AC-2010] Empêcher fermeture d'Access depuis la barre des tâches Windows
    Par franckb74 dans le forum Access
    Réponses: 6
    Dernier message: 27/06/2014, 23h51
  3. Empêcher la fermeture d'une application
    Par ChPr dans le forum Android
    Réponses: 8
    Dernier message: 26/05/2013, 22h46
  4. [C#] Icône, barre des tâches et Service Windows
    Par SErhio dans le forum Windows Forms
    Réponses: 17
    Dernier message: 03/09/2004, 12h56
  5. HAUTEUR de la barre des tâches de Windows ?
    Par Lung dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 13/12/2002, 11h43

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