Par programme de changement de l'icône de l'exécutable
Je développe une application appelée WeatherBar. Sa principale fonctionnalité est basée sur son interaction avec la barre des tâches Windows 7 — il l'icône change en fonction des conditions météorologiques dans un emplacement spécifique.
Les icônes, je suis à l'aide de l'application sont stockées dans un compilé natif fichier de ressources (.res) — je suis l'utiliser à la place de la ressource incorporée manifeste pour les icônes. Par défaut, j'ai modifier l'Icône de la propriété du formulaire principal pour modifier les icônes en conséquence et il fonctionne très bien, aussi longtemps que l'icône n'est pas épinglé à la barre des tâches. Quand il fait épinglé, l'icône dans la barre des tâches passe automatiquement à la valeur par défaut pour le fichier exécutable (avec l'indice 0 dans le fichier de ressources).
Après avoir fait un peu de recherche, j'ai pensé qu'un moyen de changer l'icône serait en mesure de changer l'icône de raccourci (comme tous les épinglé applications sont en fait des raccourcis stockés dans le dossier de l'utilisateur). Mais il ne fonctionne pas.
Je suppose que j'ai besoin de changer l'icône de l'exécutable, et donc d'utiliser UpdateResource
, mais je ne suis pas entièrement sûr de ce que. Mon exécutable n'est pas signé numériquement, donc il ne devrait pas être un problème en le modifiant.
Quelle serait la façon de résoudre ce problème?
Cela n'aide pas le problème et n'est pas une solution.
Vous ne pouvez pas utiliser UpdateResource, l' .exe fichier est verrouillé. Vivek du lien est à peu près aussi bon qu'il va obtenir. Il y a un joli papier d'emballage dans la Fenêtre de l'API Pack de Code: code.msdn.microsoft.com/WindowsAPICodePack
Je suis en fait en utilisant l'API Windows Pack de Code pour gérer les JumpLists et les progrès dans la barre des tâches, mais je ne vois aucune façon (à ce moment) pour remplacer l'icône de l'exécutable.
msdn.microsoft.com/en-us/magazine/dd942846.aspx#id0420051 windowsteamblog.com/blogs/developers/archive/2009/07/28/... Regarder dans OverlayImage dans le APICodePack.
OriginalL'auteur Den Delimarsky | 2010-03-29
Vous devez vous connecter pour publier un commentaire.
Si vous voulez le faire par programmation, je voudrais commencer par regarder les Portable Executable format de fichier (L'entrée de Wikipedia). La section des ressources (.rsrc, voir section 6.9) doit contenir l'icône. En utilisant cette information, vous pouvez écrire un outil pour modifier l'icône.
Si vous voulez juste de modifier rapidement l'icone d'un fichier existant, vous pourriez être en mesure de pirater dans Visual Studio éditeur de ressources. J'ai testé avec un fichier par la suppression de l'ancienne icône et l'ajout d'un nouveau. L' .exe icône a changé dans l'Explorateur de la nouvelle icône, et la nouvelle icône est apparue sur le menu Démarrer lorsque j'ai traîné là.
-- Edit --
Oui, je suis d'accord que l'utilisation de UpdateResource est une bonne approche. Voici un exemple J'ai trouvé de l'aide de fonctions C++ pour le faire, et un P/Invoke signature pour UpdateResource et FindResource.
OriginalL'auteur Paul Williams
Ceci a été pris de http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/9e23a82c-8bed-4b96-8b9a-4c2b6136a622/
Il peut aider.
Comme nobugz mentionné, ce n'est pas la solution. J'ai besoin de changer l'icône de l'exécutable existant plutôt que dans le raccourci.
OriginalL'auteur Art W
J'ai décidé de mettre en œuvre une solution de contournement - l'icône modifier dans la miniature de la fenêtre (il est possible sous Windows 7). Si l'icône est détaché, l'utilisateur peut voir l'icône de modification. Dans le cas où il est épinglé, la vignette va changer en fonction des conditions météorologiques actuelles.
Me semble que la structure de épinglé icônes (être un raccourci, en fait) n'autorise pas la dynamique de changement d'icône. Si je me trompe, je suis ouvert aux commentaires et idées sur cette.
OriginalL'auteur Den Delimarsky