Изменение значка, отображаемого в группе на панели задач для многооконного приложения - PullRequest
3 голосов
/ 12 декабря 2011

В Windows 7 приложение может управлять группировкой Windows на панели задач.Windows имеет некоторые настройки по умолчанию, относящиеся к исполняемому файлу, способу создания ярлыка, имени программы и т. Д., Чтобы применить некоторую группировку по умолчанию.Проблема с хост-приложениями, такими как Java, заключается в том, что один и тот же исполняемый файл используется многими программами, поэтому в Windows есть некоторые настройки реестра, чтобы установить, что javaw.exe является хост-приложением.Когда это происходит, приложения должны настроить во время выполнения, как группировать Windows и включить пин-код на панели задач.Я уже устанавливаю Идентификаторы модели пользователя приложения , чтобы сгруппировать Windows по мере необходимости.

Проблема, которую я не нашел, состоит в том, что для многооконного приложения: как установить стабильныйзначок для использования на панели задач?Поведение Windows по умолчанию для приложения, например, с двумя окнами, где у каждого окна есть свой собственный значок, значок на панели задач показывает значок первого открытого окна, если это окно закрывается, оно меняется на другое, ипроцесс повторяется каждый раз, когда окна открываются и закрываются.

Существует некоторый API для установки значка, когда пользователь прикрепляет приложение к параметру панели задач System.AppUserModel.RelaunchIconResource свойство окна , нов документации говорится, что этот значок используется при закреплении приложения, поэтому в соответствии с этим он используется только в том случае, если приложение выполняется из этих закрепленных приложений, оставляя проблему открытой для приложений, которые не могут быть закреплены (или чторазработчик не хочет разрешать закрепление).

Существуют такие варианты, как создание нового исполняемого файла со значком (запуск JVM из этого приложения), создание ярлыка с правильным AppUserModelID.Для меня это не решения, потому что приложение распространяется с использованием Java WebStart / JNLP, поэтому ярлык приложения создается Java, а средство запуска помечается как главное приложение (как и должно быть)

другое решениеозначает, что при запуске в Windows 7 для каждого окна устанавливается один и тот же значок. Этот значок, за исключением панели задач, не очень заметен в Windows 7 в режиме Aero, но если Aero отключен, он используется напереключатель вкладок Alt + без предварительного просмотра окон, который я хочу оставить для каждого окна разным

Примечание. Это Java с тегами, но на самом деле это вопрос для любой платформы, использующей исполняемый файл хоста (javaw.exe,python.exe ...)

...