Je ne souhaite pas personnaliser l'icône affichée dans la barre des tâches de Windows 7 . Lorsque mon application est en cours d'exécution, je peux le faire en changeant l'icône de la fenêtre principale, mais lorsque l'application est épinglée, l'icône de l'exécutable est affichée.
Comment puis-je définir l'icône de la barre des tâches pour mon application sur une icône différente de celle intégrée dans l'exe?
Non essayé, cette solution peut fonctionner mais semble sale.
Modifier :
Notre application est compilée une fois, mais selon le fichier de configuration, les fonctionnalités sont activées ou non. Il s'agit donc d'un produit ou d'un autre. Nous ne voulons pas compiler un exe pour chaque produit.
La solution ci-dessus peut ne pas fonctionner car de nombreuses instances de mon application peuvent être installées dans différents chemins (vous vous retrouvez avec le même nom de fichier exe mais différentes icônes!), Cette clé de registre est-elle mal conçue ou manque-t-il quelque chose?
EDIT Les informations ci-dessous sont un peu obsolètes; toutes les nouvelles versions de Windows 7 sont maintenant disponibles en tant qu'API gérée, disponible ici: http://code.msdn.Microsoft.com/WindowsAPICodePack
Il y a une série d'articles sur la nouvelle API de la barre des tâches par le gourou du débogage Sasha Goldshtein . Vous devriez jeter un oeil à la API Icônes de superposition et barres de progression .
Vous pouvez télécharger l'exemple de code à partir de Ressources de développement de la barre des tâches de Windows 7 sur Microsoft Code. Ce que vous cherchez, c’est l’échantillon IMClient
:
L'exemple IMClient montre comment Icônes de superposition de la barre des tâches et barre des tâches les barres de progression peuvent éclairer un bouton de la barre des tâches de l'application à la place de s’appuyer sur un dialogue supplémentaire ou sur une icône dans la notification système zone (plateau).
Je crois que cela devrait vous aider à réaliser ce que vous voulez.
Lorsque vous épinglez une application à la barre des tâches, il crée simplement un raccourci dans le répertoire suivant:
C:\Users\<User Name>\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
Vous devriez pouvoir identifier l'emplacement du raccourci (c'est-à-dire obtenir KnownFolders et travailler à partir de là. UserAppData doit être celui-là), puis utiliser P/Invoke (IShellLink) pour modifier l'icône que le raccourci doit utiliser. La machine a peut-être besoin d'un redémarrage pour que cela prenne effet, mais cela devrait fonctionner.
Si vous maintenez la touche Maj enfoncée tout en cliquant avec le bouton droit de la souris sur l'application épinglée et sélectionnez Propriétés, vous pouvez voir le bouton Changer l'icône du raccourci. C'est fondamentalement ce que vous devez émuler avec du code.
Toutes ces choses peuvent certainement être faites avec du code, mais vous pouvez décider si elles sont meilleures que les paramètres de registre.
Autant que je sache, pour une raison quelconque, vous ne pouvez pas modifier l'icône d'un programme déjà épinglé dans la barre des tâches. Pour ce faire, il suffit de désépingler le programme, de le localiser dans le menu Démarrer, de cliquer avec le bouton droit de la souris sur l'icône - propriétés - changer. puis ré-épinglez-le à la barre des tâches, et il aura la nouvelle icône!
Je ne sais pas si je comprends ton problème mais ..
Si vous créez une application et placez la propriété icon de la fenêtre principale, cette icône apparaîtra également dans la barre des tâches. Mais, si vous le fixez dans la barre des tâches, cette icône disparaîtra. Ai-je raison? Si c'est le cas, allez dans les propriétés du projet et dans l'onglet application, mettez l'icône que vous voulez pour le fichier exe. Maintenant, vous verrez cette icône dans la barre des tâches une fois épinglé.
J'utilise la même icône pour les deux choses: P
Vous pouvez le faire en utilisant la bibliothèque appelée "Windows 7 Bridge" basée sur "Windows Vista Bridge".
Ce sont des enveloppes gérées autour de toutes les fonctions natives de Vista et Windows 7.
Plus d'informations peuvent être trouvées ici
Malheureusement, je ne peux pas le tester maintenant, mais peut-être que la simple création d'un bon vieux raccourci pourrait résoudre le problème? Créer un raccourci vers l'application, changer l'icône, puis épingler le raccourci à la place de l'application elle-même?
Va vérifier quand je pourrai ensuite avoir accès à ma machine Windows 7 ...
Regardez ce blog . Il écrit plusieurs articles sur la programmation de la barre des tâches de Windows 7, ce qui vous orientera peut-être dans la bonne direction.
Faites un clic droit sur l'icône épinglée. Dans la fenêtre contextuelle, vous voyez le titre du programme, cliquez à nouveau avec le bouton droit de la souris et accédez à Propriétés. Là, vous pouvez changer l'icône en cliquant sur le bouton "Changer l'icône". Pour moi, il fallait un redémarrage pour terminer les modifications.