У меня проблема с тем, что, когда я прикрепляю значок панели задач в Windows 7 для своего приложения, нажатие на значок открывает отдельный (дублированный) значок для программы, а не группирует его с ярлыком, используемым для его вызова.
Само приложение представляет собой файл .jar, который был упакован в .exe с помощью Launch4j. Это объясняет, почему значок дублируется - Launch4j вызывает отдельный процесс javaw.exe, и похоже, что AppModelUserID запутывается, когда вы начинаете делать такие вещи.
Согласно этой записи , решение состоит в том, чтобы указать AppModelUserID через некоторый собственный код. Я успешно получил код JNA, вызываемый в моем приложении в соответствии с приведенным там примером, и кажется, что я правильно установил его в значение в форме «MyCompany.MyApp». Вызов функции 'get' возвращает значение, которое я для нее установил, поэтому все выглядит нормально на стороне приложения.
... но на этом решение останавливается! Я не думаю, что это конец, потому что это точно не решит проблему для меня! Может показаться, что также требуется, это созданный ярлык, который имеет такой же AppModelUserID - это моя интерпретация документации MSDN.
Поскольку я использую NSIS в качестве установщика, я использовал плагин WinShell , чтобы установить свойства ярлыка приложения после установки. В частности, вызов отражает пример:
WinShell::SetLnkAUMI "$SMPrograms\MyApp\MyApp.lnk" "${MyApp_AppUserModelId}"
Это та, которую я перетаскиваю на панель задач ... но опять же, без кубиков. Приложение по-прежнему открывается в виде отдельного закрепленного значка. На данный момент я не могу проверить, правильно ли я установил свойства ярлыка, потому что, кажется, нет инструмента для проверки того, что AppModelUserID относится к данному ярлыку.
Все отлично работает, когда я просто создаю ярлык непосредственно к файлу .jar, но возникает проблема с попыткой установки JRE в NSIS и куча других головных болей, с которыми я уже сталкивался и пытаюсь избежать .
Буду очень признателен за любые советы, которые помогут мне решить эту ноющую проблему! Меня всегда мучают эти глупые маленькие эстетические проблемы, которые так трудно решить ...
Спасибо!
РЕДАКТИРОВАТЬ: Проблема была решена путем переключения на ANSI сборку NSIS , как рекомендовано Андерсом после того, как я не смог чтобы убедиться, что AppModelUserID ярлыка был установлен правильно.