Как настроить реестр Windows с помощью URL-обработчика для настраиваемого протокола для запуска Firefox и открытия реального URL

У нас есть программа CTI, которая использует IE-Framework и открывает ее содержимое в Internet Explorer. Мы хотели бы использовать Firefox вместо IE, но разработчики отказываются что-либо менять.

Поэтому я подумал об URL-обработчике.
Программа CTI использует URL-адрес как https:://software/database/profile=%1.php
Я могу сказать программе использовать URL-обработчик.

Таким образом, готовый URL будет выглядеть workaround:https:://software/database/profile=%1.php

Я сделал эти записи реестра:

Редактор реестра Windows, версия 5.00

[HKEY_CLASSES_ROOT\workaround]
@="URL:workaround Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\workaround\shell]

[HKEY_CLASSES_ROOT\workaround\shell\open]

[HKEY_CLASSES_ROOT\workaround\shell\open\command]
@="\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" "%1"

При открытии workaound:google.de
Firefox открывает бесконечное количество вкладок.
То же самое с workaround:"google.de"
Открытие обходного пути: без чего-либо открывает Firefox без страницы

Конечно, я мог бы добавить URL в реестр, но программа выдает переменную в зависимости от записи базы данных, которую вызывает.

У кого-нибудь есть представление о том, какой параметр нужен Firefox?

Заранее спасибо

1 ответ

Параметры командной строки Firefox можно найти в MDN в разделе Параметры командной строки. Указание URL может быть сделано с или без -url вариант. При желании вы можете явно открыть URL в новой вкладке (-new-tab) или новое окно (-new-window). Если не использовать ни один из этих параметров, используется текущее значение по умолчанию, указанное пользователем в настройках.

Тем не менее, одной из проблем является то, что следующая строка имеет непревзойденную кавычку:
@="\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" "%1"
Есть 5 " символы на линии. В большинстве случаев я ожидаю, что вам понадобится четное число. Вы, вероятно, предполагали, что строка будет:
@="\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" \"%1\""

Кроме того, на основании информации, полученной при регистрации приложения в схеме URI, выясняется, что URL, который вы передаете в Firefox:
workaound:google.de
Другими словами, в том числе workaround:, Firefox, конечно, не знает, как обращаться с workaround: протокол. Вам понадобится промежуточный шаг / программа / скрипт для удаления workaround: с URL, переданного в Firefox. Есть много разных способов, которыми вы могли бы сделать это. То, что вы выберете, будет зависеть от вашей среды и инструментов, с которыми вы предпочитаете работать.

В целях отладки вы можете временно использовать исполняемый файл, отличный от Firefox, который позволит вам точно видеть командную строку, которую вы передаете в Firefox.

Что касается того, как предварительно проанализировать аргумент для удаления workaround:, следующий вопрос и ответы должны дать вам отправную точку:
Запускать.bat файлы из пользовательского обработчика URL, не показывая окно консоли

Другие вопросы по тегам