我在使用非英文版本的WindowsXP版本创建快捷方式时遇到问题。
我想在“启动”菜单中添加一个快捷方式,这样,每次用户登录时,应用程序都会运行。
所以我做了:
<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>
但这不起作用。
有人可以帮忙吗?
感谢。
答案 0 :(得分:3)
JNLP格式支持按resources
元素中的区域设置分区下载,但不支持shortcuts
元素(来自内存 - 使用JaNeLA进行检查以确定)。
相反,您可能需要查看6.0.18中引入的IntegrationService
。特别是requestShortcut(desktop,menu,submenu)
1 方法。该方法返回boolean
以指示成功/失败。
submenu
的字符串可能来自:{
user.language
Locale.getDefault()
答案 1 :(得分:3)
我在我的应用中做到了这一点:
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”中创建。