Мне крайне необходим ваш опыт в решении проблемы Windows-7.
Сценарий: У меня есть пакет справки на основе фреймов, настроенный для контекстно-зависимых вызовов справки.Приложение Java может контролировать, с какой страницы открываются пакеты справки, передавая тег, представляющий нужный HTML-код с привязкой, в файл HTML с именем pophelp.Этот файл имеет javascripting, который считывает переданный тег с конца 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 = коллизия не передана.
Любая помощь будет принята!