Проблема с настройкой пользовательского протокола 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

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