- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
搜索插件是否安装
忙了一天,终于搞定啦,哈哈哈,网上这样的资料太少啦,常常在csdn看到有类似问题的解决了也不说解决办法的,最讨厌了,拉出来供大家学习,哈哈,博客也记录了/liyun919/archive/2009/11/13/4807958.aspx。
1、 需求描述:项目由网页部分及客户端大厅程序部分组成,网页上有一个进入大厅按钮,如果客户端安装了,点击按钮直接打开客户端程序,如果未安装则提示消息提醒安装客户端程序。
类似于QQ游戏大厅、联众游戏大厅的打开,QQ的强制聊天功能。
2、首先要实现如果客户端安装了,就打开客户端,网上大多给出的是通过js调用activex控件的方式实现,因为这样IE会弹出安全提示,感觉不好。
SCRIPT language=javascript
function Run() {
var o = new ActiveXObject(WScript.Shell);
o.exec(D:\\Program Files\\Ulead Systems\\Ulead VideoStudio 9.0\\vstudio.exe);
}
/SCRIPT
其实我们只需要通过注册协议方式就可以成功实现。
在客户端安装时我们只需要写如下注册表信息:
[HKEY_CLASSES_ROOT\test]
@=testProtocol
URL Protocol=\C:\\Program Files\\test.Setup\\test.exe\
[HKEY_CLASSES_ROOT\Ustcori\DefaultIcon]
@=\C:\\Program Files\\test.Setup\\test.exe,1\
[HKEY_CLASSES_ROOT\test\shell]
[HKEY_CLASSES_ROOT\test\shell\open]
[HKEY_CLASSES_ROOT\test\shell\open\command]
@=\C:\\Program Files\\test.Setup\\Driver.exe\
这样就注册了一个新协议test,之后直接通过在浏览器中输入test:\\\ ,就会自动从注册表中查找该协议程序的地址,打开客户端程序。
3、然后就要实现客户端未安装时,提示消息了。
这个颇费周折,网上没有找到相关的方式,大多的实现方式也是通过js调用WScript.Shell控件。
后来找到了网上有很多QQ的实现方式:
function IsInstallQQ(){
try{//支持
var xmlhttp=new ActiveXObject(TimwpDll.TimwpCheck);
return true;
}catch(e){//不支持
location.href=/webpresence/up_alarm.shtml;
//window.open(/webpresence/up_alarm.htm,,toolbar=no,location=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=no,copyhistory=no,width=410, height=410,top=0,left=0)
return false;
}
return false;
}
对于红色那段activex的调用是怎么回事却没有说明,搜索一下发现msn,迅雷等其实是通过类似的方式实现的,制作一个自定义控件后,并对它进行安全授权,连同客户端程序一起安装,该自定义控件会往注册表中写值,然后通过js实例化该控件,如果异常说明客户端程序未安装。
看一下QQ如何写值的:
[HKEY_CLASSES_ROOT\TimwpDll.TimwpCheck]
@=TimwpDll.TimwpCheck
[HKEY_CLASSES_ROOT\TimwpDll.TimwpCheck\CLSID]
@=ED4CA2E5-0EEA-44C1-AD7E-74A07A7507A4
认准的实现方向,那么下面就展开对于自定义activex控件的调查。
4、利用VS2008制作自定义activex控件
a、首先在解决方案下建一个Windows控件库项目(windows from control library),然后增加一个控件UstcOriWebLab.cs。
b、打开AssemblyInfo.cs修改程序集信
文档评论(0)