Проблема с настройкой пользовательского протокола URL в Windows CE
Я пытаюсь настроить пользовательский протокол URL (testProtocol) на устройстве Windows CE. Когда пользователь щелкает ссылку с помощью testProtocol, он запускает приложение (ParamTest.exe).
Я сделал следующее:
Создан проект Windows Smart Device -> Приложение устройства.
Я изменил метод Main(), чтобы принимать строку [] аргументов, которые будут передаваться вместе с протоколом:
public static void Main(string[] args)
{ }
Поскольку это тест, все, что делает это приложение, передает аргументы в форму, которая отображает аргументы.
Затем я установил следующие записи реестра на телефоне:
HKEY_LOCAL_MACHINE
Software
Microsoft
Shell
URLProtocols
testProtocol
а также
HKEY_CLASSES_ROOT
testProtocol
(Default) = "URL:Test Protocol"
URL Protocol = ""
Shell
Open
Command
(Default) = "\Program Files\ParamTest\ParamTest.exe" "%1"
Всякий раз, когда я перехожу к testProtocol:12345 или testProtocol://54321, я получаю следующую ошибку:
"Не существует приложения, связанного с"testProtocol:12345". Сначала запустите приложение, затем откройте этот файл из приложения".
Я могу запустить приложение, перейдя в папку \ Program Files \ ParamTest \ ParamTest.exe. Я сделал cab-файл, чтобы установить файл и сделать все записи в реестре, я проверил их правильность с помощью инструмента CERegEditor.
Нужно ли устанавливать разрешение / MIME-тип / дополнительную запись реестра? Любая помощь приветствуется, так как это сводит меня с ума!
Версия ОС в системе, на которой я запускаю приложение, - 5.0.
1 ответ
Не уверен, где ваша ошибка, из макета настроек реестра, может быть, ваш Shell
подраздел находится в неправильном положении?
Вот как это работает для меня:
Сначала создайте следующие ключи реестра и значения:
[HKCR\testProtocol]
URL Protocol=""
[HKCR\testProtocol\Shell\Open\Command]
@=""\Program Files\ParamTest\ParamTest.exe" "%1""
[HKLM\software\microsoft\shell\urlprotocols\testProtocol]
Затем создайте тестовый HTML-файл:
<a href="testProtocol:12345">open 12345</a>
Затем, открыв этот файл в Internet Explorer на моем устройстве, программа ParamTest вызывается с аргументом. testprotocol:12345