Как передать параметры URL-адреса из Java в локальный файл HTML в Windows 7?

Мне отчаянно нужен ваш опыт в решении проблемы с 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 не передан.

Любая помощь будет принята с благодарностью!

5
задан Kawili-wili 23 March 2011 в 15:33
поделиться