问题前因:在注册表注册了协议,就是在浏览器输入 mrp: (注: 冒号后面可以带参数后面会讲到)就会打开定义好的mrp程序。 关键来了,这个是公司一直这么用的,都遇到过问题。然后...老大发给我 mrp://|{qno<q000001>}/ 套在 HTML 的 <a> 标签里。 就让我做个WebBrowser的程序再测下能否打开程序。
之后....一点点击没反应,放个 博客园 的链接试了下,没问题,点击之后就进入首页了。
开始在网上找资料,然后以为是 WPF 的 WebBrowser 识别不到注册表的信息,或什么兼容性问题,... 整出一大堆问题,找资料, 那个悲剧啊。
过了一段时间,到了今天,又在找相关资料,最后最后发现用 mrp:// 就有反应了,然后把后面的一点一点的拆开测试,发现两个斜杠后面的参数带符号时都没反应,发现问题的所在了,这是一个进步,haha。 以为改下参数,在mrp程序接收参数方法改下就可以了,可用了这么多年的代码改了,会出现很多未知的Bug的。继续测...继续改...
发现了把 mrp: 后面的两个斜杠去掉改为 mrp:|{qno<q000001>}/ 就有反应了。好像有点像了,不过还是不对,为什么加上斜杠不行呢?特殊符号?编码问题?没找出为什么... 最后试下 mrp:////|{qno<q000001>}/ 四个斜杠,居然成了。成功打开程序并且参数也带进去了。
遗憾的是网上找资料还是没找到这是什么原因...