Meine Firma hat eine Branding-Mechanismus, der das Symbol für eine Windows-Anwendung setzt, etwa so:Dynamisch Set Taskbar Icon für Windows-Anwendung
if (AppBranding.Is("FOO"))
Icon = MyProject.Properties.Resources.Icon_FOO;
else
Icon = MyProject.Properties.Resources.Icon_BAR;
Icon_FOO
und Icon_BAR
sind Ressourcen, die auf ihre jeweiligen ICO-Dateien verweisen.
Außerdem wird das Symbol und Manifest in Projekt> MyProject-Eigenschaften> Ressourcen in Visual Studio festgelegt.
Wenn Benutzer die Anwendung starten, erscheint das richtige Symbol auf Branding basiert. Wenn sie jedoch das Programm an die Taskleiste anheften, wird das Icon unabhängig vom Branding auf Icon_FOO.ico zurückgesetzt. Wenn sie es lösen, schaltet das Symbol zurück.
Ich glaube, dass Programme, die an die Taskleiste angeheftet sind, das Symbol der .exe verwenden, während das Symbol für das Fenster ist, was ich auch gesetzt habe Form.Icon
zu sein. Ich weiß nur, wie man das .exe-Icon einstellt, indem man zu Projekteigenschaften> Ressourcen geht und eine Auswahl aus der Drop-Down-Liste trifft, wie ich im obigen Bild habe. Wie kann das Icon für die .exe dynamisch gesetzt werden?
Vielleicht habe ich mein Beispiel in der Frage zu stark vereinfacht bei dem Versuch, es einfacher zu machen für Stackoverflow lesen. Unsere Kunden erhalten eine Anwendung ohne Markenzeichen. Sie stellen eine Lizenzdatei zur Verfügung, die die Marke enthält, und plötzlich ändern sich alle relevanten Banner und Symbole. Ihre Lösung erfordert, dass die Marke zur Kompilierungszeit bekannt ist, wenn wir sie nur zur Laufzeit kennen. Um das Ganze abzurunden, funktionierte unsere Lösung gut, bis jemand entschied, das Programm an die Taskleiste anzuheften. Ich brauche eine * dynamische * Möglichkeit, das Taskleistensymbol zu ändern. – Rainbolt
@John, ok, ich verstehe Ihre Anforderung, aber ich denke nicht, dass es eine dynamische Lösung dafür gibt, ohne die Verknüpfung oder die Binärdatei selbst zu ändern (was wäre keine gute Lösung, bei Virenscannern usw. .. dass check für diese Art von Sache). Wenn Ihre Anwendung signiert ist, können Sie die Anwendung nicht ändern, ohne zurückzutreten. –