Winforms: как программно изменить значок на панели задач приложения для закрепленного приложения в Windows 7

Я меняю значок, выполняя в основной форме следующие действия:

 this.Icon = myIcon; 

И это отлично работает в Windows 7, за исключением случаев, когда я «закрепляю» приложение на панели задач, это, кажется, не влияет на значок панели задач и влияет только на верхнюю / левую часть значка окна.

Как мне убедиться, что я могу изменить значок на панели задач приложения в Windows 7 без необходимости использовать наложения значков Windows 7, поскольку это будет просто наложить другой рисунок на значок, но не изменит основной значок?


person lahsrah    schedule 13.03.2011    source источник
comment
возможный дубликат Изменить закрепленный значок на панели задач (Windows 7)   -  person David Heffernan    schedule 14.03.2011
comment
Ответы на другой вопрос не кажутся слишком удовлетворительными. Я думаю, вам нужно будет засучить рукава и заняться старомодным программированием оболочки Win32. AppUserModelID кажется ключевым. Наслаждаться!   -  person David Heffernan    schedule 14.03.2011
comment
Спасибо. Похоже, я делаю то, чего не должен делать, если мне приходится нырять в оболочку win32: P. Думаю, мне действительно следует использовать наложения значков, но дело в том, что цвет значков нашего приложения меняется в зависимости от состояния приложения, но мы, вероятно, рассмотрим переход к наложению. Собирался заняться этим, если это было достаточно легко.   -  person lahsrah    schedule 14.03.2011
comment
Думаю, поменять иконку не так уж и сложно. Конечно, если ваше приложение неожиданно завершит свою работу, значок будет неправильного цвета. Наложения кажутся более обычным способом обозначения состояния.   -  person David Heffernan    schedule 14.03.2011
comment
Да, я бы предпочел не реализовывать хак, который включает изменение значка ярлыка, который будет оставаться в несогласованном состоянии при сбое приложения. Спасибо за ваш вклад.   -  person lahsrah    schedule 14.03.2011


Ответы (1)


Закрепленное приложение фактически создает ярлык Windows. Так что для этого придется манипулировать файлом ярлыка Windows на диске. Не самая лучшая идея, как кажется хакерской. Решил вместо этого использовать оверлеи.

person lahsrah    schedule 20.06.2011