【问题标题】:Problem setting up custom URL Protocol on Windows CE在 Windows CE 上设置自定义 URL 协议的问题
【发布时间】:2011-03-28 22:26:48
【问题描述】:

我正在尝试在 Windows CE 设备上设置自定义 URL 协议 (testProtocol)。当用户单击带有 testProtocol 的链接时,它将启动一个应用程序 (ParamTest.exe)。

我做了以下事情:

创建了一个 Windows 智能设备项目 -> 设备应用程序。

我更改了 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-type/额外的注册表项?感谢任何帮助,因为这让我发疯!

我正在运行应用程序的系统上的操作系统版本是 5.0。

【问题讨论】:

    标签: windows-mobile registry url-protocol


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 2014-05-26
      • 2012-07-25
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多