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

Windows Discussion :

Win 7 : icone barre des taches


Sujet :

Windows

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Win 7 : icone barre des taches
    Bonjour,
    je développe une application (C++) qui doit pouvoir changer lors de l'exécution l'icône apparaissant dans la barre des taches.
    L'icône de l'application (celle qui apparait dans l'explorer) a été définie de manière habituelle avec un fichier de ressources. Lors de l'exécution, je modifie l'icône liée à ma fenêtre. Sous WinXP, tout se passe correctement, l'icône dans la barre des taches se met à jour. Par contre, sous Win7, l'icône dans la barre des tâches n'est pas modifiée, par contre celle en haut à gauche de la fenêtre est bien mise à jour (pareil quand je fais un alt-tab par exemple, l'icône est bonne). Il y a une méthode (tordue ) de voir la bonne icône : épingler puis désépingler le programme à la barre des tâches, l'icône est alors correcte... jusqu'au prochain clic droit dessus

    J'ai essayé différentes méthodes pour modifier cette icône : d'abord, mon appli étant développée avec Qt, la méthode proposée par Qt (QWidget::setWindowIcon()), puis les appels directs à l'API windows (SetClassLong(hWnd, GCL_HICON, icon, SendMessage(hWnd, WM_SETICON, ICON_BIG ou ICON_SMALL, icon)). (Toutes testées sur XP pour vérifier que les appels étaient correctement effectués), elles ont toutes donné le même résultat.

    Y'a t'il une solution à mon problème ? (je commencerais à croire que Win7 conserve toujours l'icône liée à l'exécutable, mais la manip d'épingler / désépingler semble prouver le contraire)

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    La gestion de la barre des taches sous Win7 est différente de WinXP.
    Il faut télécharger et utiliser le SDK de Win7 pour tirer pleinement profit de cette nouvelle barre des taches.

    Par contre, je ne sais pas si ce SDK permet de faire ce que tu veux faire.


    EDIT : Le nom exact est Windows API Code Pack et est disponible là -->
    http://code.msdn.microsoft.com/WindowsAPICodePack
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Désolé, le lien donné est pour .Net, je ne sais pas trouver les infos pour C++
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci, même si ton lien est pour .net ça m'a permis de trouver le SDK pour Windows 7 qui devrait m'aller (ici -> http://www.microsoft.com/downloads/d...kInfoContainer). Ca devrait pouvoir faire ce dont j'ai besoin ("Overlay Icons" -> c'est exactement ce que je veux, mes modifs sur l'icône consistent à rajouter une info supplémentaire par-dessus), y'a plus qu'à essayer

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ca fonctionne

    Pour ceux que ça intéresse, le code nécessaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include "Shobjidl.h"
    ...
    ITaskbarList3* ptl;
    HRESULT res = CoCreateInstance(
    	CLSID_TaskbarList, NULL, CLSCTX_ALL,
    	IID_ITaskbarList3, (void**)&ptl);
    ...
    ptl->SetOverlayIcon(
    	winHandle,
    	icon,
    	L"description");

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

Discussions similaires

  1. Icone Barre des taches XP
    Par pittacos dans le forum wxWidgets
    Réponses: 3
    Dernier message: 23/03/2009, 08h19
  2. [C++] - Icone Barre des Taches
    Par allan02390 dans le forum C++
    Réponses: 3
    Dernier message: 20/12/2007, 11h18
  3. [C#]icone barre des taches
    Par netangel dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 01/12/2006, 10h49
  4. icone barre des taches animé
    Par Tukan dans le forum Windows
    Réponses: 2
    Dernier message: 17/01/2006, 20h03

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