我公司有設置圖標的Windows應用程序,像這樣一個品牌的機制:動態設置任務欄圖標的Windows應用程序
if (AppBranding.Is("FOO"))
Icon = MyProject.Properties.Resources.Icon_FOO;
else
Icon = MyProject.Properties.Resources.Icon_BAR;
Icon_FOO
和Icon_BAR
是指向各自的.ico文件資源。
此外,項目> MyProject屬性>資源中的圖標和清單在Visual Studio中設置。
當用戶啓動應用程序,正確的圖標會出現基於品牌。但是,如果他們將程序固定到任務欄,則無論品牌如何,該圖標都會恢復爲Icon_FOO.ico。當他們取消固定時,圖標切換回來。
我相信固定到任務欄的程序使用.exe的圖標,而窗口的圖標是我設置爲Form.Icon
的任何東西。我只知道如何設置.exe圖標,方法是轉到「項目屬性」>「資源」,然後從下拉列表中進行選擇,如上圖所示。如何動態設置.exe的圖標?
我可能過於簡單的問題,我的例子,而試圖使它更容易爲StackOverflow的讀書。我們的客戶獲得無品牌申請。他們提供包含該品牌的許可證文件,並突然改變所有相關的橫幅和圖標。您的解決方案要求在編譯時知道品牌,因爲我們只能在運行時瞭解它。最重要的是,我們的解決方案工作良好,直到有人決定將程序固定到任務欄。我需要*動態*方式來更改任務欄圖標。 – Rainbolt
@John,好吧,我明白你的要求,但我不認爲有一個動態的解決方案,沒有改變快捷方式,或二進制本身(這不會是一個很好的解決方案,給病毒掃描器等..檢查這種事情)。如果您的應用程序已簽名,則無法在不退出的情況下修改應用程序。 –