通过网页链接打开应用程序客户端的两种实现方式
来源:互联网 发布:c语言如何模块化 编辑:程序博客网 时间:2024/06/02 15:44
近期公司要做一个项目,其中一个需求就是通过网页链接能够打开我们的IM软件,于是我对QQ和MSN、阿里旺旺进行了一番研究。发现主要是通过两种方式来实现的:
第一种方式是修改注册表的方式,QQ和阿里旺旺就是通过这种方式实现的。基本方法就是在安装过程中或者是程序第一次启动时
在注册表创建类似下面的键项和键值,
QQ:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT/Tencent]
@="TencentProtocol"
"URL Protocol"="C://Program Files//Tencent//QQ//Timwp.exe"
[HKEY_CLASSES_ROOT/Tencent/DefaultIcon]
@="C://Program Files//Tencent//QQ//Timwp.exe,1"
[HKEY_CLASSES_ROOT/Tencent/shell]
[HKEY_CLASSES_ROOT/Tencent/shell/open]
[HKEY_CLASSES_ROOT/Tencent/shell/open/command]
@="/"C://Program Files//Tencent//QQ//Timwp.exe/" /"%1/""
阿里旺旺:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT/Alitalk]
"URL Protocol"=""
[HKEY_CLASSES_ROOT/Alitalk/Shell]
[HKEY_CLASSES_ROOT/Alitalk/Shell/Open]
[HKEY_CLASSES_ROOT/Alitalk/Shell/Open/Command]
@="/"C://Program Files//Alisoft//WangWang//WangWang.EXE/" %1"
当我们点击网页上的链接或者直接通过浏览器输入tencent://或Alitalk://这样的URL时,这些输入全部作为命令行参数传递给应用程序。
我们的客户端程序需要对这些输入进行解析,然后做出响应。
第二种方式需要使用apps(Asynchronous Pluggable Protocols),需要apps的规则编写一个COM组件,MSN就是这种方式.
安装MSN的过程中会注册msgrapp.8.5.1288.0816.dll(我的机器上是这个文件,MSN是8.5的),同时在注册表注册msnim这个自定义协议scheme,
代码如下:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT/PROTOCOLS/Handler/msnim]
"CLSID"="{828030A1-22C1-4009-854F-8E305202313F}"
{828030A1-22C1-4009-854F-8E305202313F}就是这个协议对应的处理器(msgrapp.8.5.1288.0816.dll)的CLSID。
注册成功后,我们在浏览器中输入任何的以msnim:开头的URL请求都会发送到这个COM组件,由这个DLL来处理。
关于apps可以参考MSDN:
http://msdn2.microsoft.com/en-us/library/aa767916.aspx#About_URLs_and_Name_
- 通过网页链接打开应用程序客户端的两种实现方式
- 通过网页链接打开应用程序客户端的两种实现方式
- 通过网页链接打开应用程序客户端的两种实现方式
- 通过网页链接打开应用程序客户端的两种实现方式
- 通过网页链接打开应用程序
- android 打开网页的两种方式.
- 通过网页打开应用程序
- JavaScript 打开新链接的两种方式
- python用浏览器打开网页的两种方式
- Java GUI界面打开网页html的两种方式
- MFC通过链接打开网页
- 如何通过js来打开客户端的应用程序
- 实现axis2两种不同方式的客户端
- 实现axis2两种不同方式的客户端
- 实现axis2两种不同方式的客户端
- 网页用户登录权限校验的两种实现方式
- jquery两种方式实现链接失效
- jquery两种方式实现链接失效
- Apache Commons FileUpload使用UTF-8时乱码的解决
- 优秀的轻量级内容管理系统: CMS Made Simple
- 动态添加上传按钮,上传多个文件
- 偷听北京--无意而真实的片段(7)
- 文本模式的浏览器(text-based www browser)
- 通过网页链接打开应用程序客户端的两种实现方式
- event.button 含义
- VB.NET中字符串操作函数
- 每日来一句英语1
- C#中字段与属性性能比较
- [基础]电话/手机常见验证的Javascript示例
- c#,递归,下载文件夹的全部内容
- SWT中的FormLayout
- 李彦宏揭秘:百度为什么推出自己的网站