Мне отчаянно нужен ваш опыт в решении проблемы с Windows 7.
Сценарий: У меня есть пакет справки на основе фреймов, настроенный для контекстно-зависимой звонки помощи. Приложение Java может управлять тем, на какую страницу открываются пакеты справки, передавая тег, представляющий желаемый HTML, с именем привязки, в файл HTML с именем pophelp. В этом файле есть сценарий JavaScript, который считывает переданный тег с конца URL-адреса, сопоставляет его с соответствующим файлом HTML в пакете справки и открывает его.
Проблема: Приведенный выше сценарий работает в Windows XP, но больше не работает в Windows 7.
Механизм вызова из приложения Java: rundll32 url.dll, файл FileProtocolHandler: //filepath/pophelp.html? Tag
Сводка результатов на данный момент: Похоже, что url.dll больше не позволяет передавать параметры с URL-адресами в Windows 7. Параметры удаляются. Я также пробовал использовать тот же тип вызова с помощью Desktop.getDesktop (). Browse () из Java, но, похоже, он тоже удаляет все параметры после .html.
Пример кода:
Исходный вызов, работающий в Windows XP -
Выполняемая команда: rundll32 url.dll, файл FileProtocolHandler: // C: \ Program Files \ App System \ App-Editor-8.0.1 \ help \ pophelp.html? TAG = callsubflow
Результат: ? TAG = callsubflow не передан.
Новый код с использованием Desktop.getDesktop (). Browse () -
public static void main(String[] args) {
String url = "file:///C:/Program Files/App System/App-Editor-8.0.1/help/pophelp.html?TAG=callsubflow";
try {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.BROWSE)) {
desktop.browse(new URI(url.replace(" ", "%20")));
}
}
} catch (IOException e) {
System.out.println("Unable to open "+url+": "+e.getMessage());
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
Результат: ? TAG = callsubflow не передан.
Любая помощь будет принята с благодарностью!