基于Chrome浏览器调用客户端程序

来源:互联网 发布:搞笑吐槽电影知乎 编辑:程序博客网 时间:2024/06/06 10:59

基于Chrome浏览器调用客户端程序


1.在IE中可以使用ActiveXObject对象调用客户端程序,调用需要设置IE浏览器的安全“自定义级别”,即将ActiveX选项的子项设置为启用。然后刷新即可调用,js调用方式:executableFullPath 为被调用的程序的所在目录;以Chrome调用QQ客户端为例:

    var executableFullPath = "E:/Boyce/software/QQScLauncher.exe";    try {    var shellActiveXObject = new ActiveXObject("WScript.Shell");    if(!shellActiveXObject) {    alert('Could not get reference to WScript.Shell');    shellActiveXObject.exec(executableFullPath);    shellActiveXObject = null;    return;    }     catch(errorObject) {         alert('Error:\n' + errorObject.message);    }
  1. 在Chrome中用如上方法调用,会出现ActiveXObject is not defined ,这是因为Chrome出于安全性考虑已经禁止直接调用客户端程序,去除了内置对象ActiveXObject,在Chrome下解决该问题思路,可以选择使用 “url protocol handler”私有协议,widows提供了用户可自定义的协议,使用私有协议首先需要到注册表下添加协议的属性(类型、key、值),通过已定义的私有协议可以就可以调用本地客户端程序,实现步骤:
    1>添加注册表:
    新建文本文档粘贴如下代码:
    Windows Registry Editor Version 5.00    [HKEY_CLASSES_ROOT\F1]    @="URL:F1 Protocol Handler"    "URL Protocol"=""    [HKEY_CLASSES_ROOT\F1\shell]    [HKEY_CLASSES_ROOT\F1\shell\open]    [HKEY_CLASSES_ROOT\F1\shell\open\command]    @="E:\\Boyce\\path\\qq\\Bin\\QQScLauncher.exe"
注册表说明:
    Windows Registry Editor Version 5.00:注册表的版本,    F1:私有协议的key;可自定义    @="URL:F1 Protocol Handler":指定对应协议类型    Shell:关键字    Open:动作    Command:要执行的命令    @="E:\\Boyce\\path\\qq\\Bin\\QQScLauncher.exe" :命令值

一个注册表文件可声明多个添加注册表的命令行;
2>执行:
另存为为注册表文件.reg,编码为unicode,否则会报“…不是二进制文件….”;以管理员身份运行注册表。
3>调用:
在页面中添加调用,最简单方式示例调用即可,F1:已经添加的私有协议。在浏览器中点击链接即可打开对应客户端程序。
测试示例:
点击弹出效果
这里写图片描述
成功打开qq登录界面
这里写图片描述

原创粉丝点击