我正在尝试在Windows CE设备上设置自定义URL协议(testProtocol)。当用户单击带有testProtocol的链接时,它将启动一个应用程序(ParamTest.exe)。
我做了以下事情:
创建Windows智能设备项目 - >设备应用程序。
我改变了Main()方法以接受将与Protocol一起传递的参数字符串[]:
public static void Main(string[] args)
{ }
由于这是一个测试,所以该应用程序所做的就是将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 / extra注册表项?任何帮助表示赞赏,因为这让我很生气!
我正在运行应用程序的系统上的操作系统版本是5.0。
答案 0 :(得分:0)
根据注册表设置的布局,不确定您的错误在哪里,可能您的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中打开此文件,使用参数testprotocol:12345