Java Web Start-несколько ярлыков
У меня возникли проблемы с созданием ярлыков в версиях WindowsXP, которые не на английском языке.
Я хочу добавить ярлык в меню "Startup", таким образом, приложение будет запускаться каждый раз, когда пользователь входит в систему.
Так я и сделал:
<shortcut online="true">
<desktop/>
<menu submenu="Startup"/>
</shortcut>
Но, например, в WindowsXP на португальском языке правильное подменю должно быть "Inicializar" вместо "Startup".
Итак, учитывая, что пользователи приложения могут иметь английскую или португальскую версии Windows, мне нужно что-то вот так:
<shortcut online="true">
<desktop/>
<menu submenu="Startup"/>
</shortcut>
<shortcut online="true">
<desktop/>
<menu submenu="Inicializar"/>
</shortcut>
Но это не работает.
Может ли кто-нибудь помочь?
Спасибо.
2 ответа:
Формат JNLP поддерживает секционирование загрузок по локалям в элементах
resources
, но не в элементеshortcuts
(из памяти - используйте JaNeLA, чтобы проверить наверняка).Вместо этого вам, вероятно, нужно будет посмотреть на
IntegrationService
введено в 6.0.18. В частности,requestShortcut(desktop,menu,submenu)
1 метод. Метод возвращает aboolean
для обозначения успеха / неудачи.
- строка для
submenu
может быть выведена из:
user.language
Locale.getDefault()
- простые решения-спросите пользователя:
- редактируемый комбинированный список известных вариантов в области опций.
- средство выбора файлов, указывающее на место, где должно быть меню Пуск.
Я сделал это в своем приложении:
public static void main(String[] args) { IntegrationService is = null; String osName = System.getProperty("os.name"); try { is = (IntegrationService) ServiceManager.lookup("javax.jnlp.IntegrationService"); } catch (UnavailableServiceException use) { use.printStackTrace(); } if (!is.hasMenuShortcut()) { if (osName.equals("Windows 7")) { is.requestShortcut(false, true, "Startup"); } else { is.requestShortcut(false, true, "Inicializar"); } } SystemTrayTest main = new SystemTrayTest(); }
Так в Windows XP ярлык создается в " Inicializar "и Windows 7 в"Startup".