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

基于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登录界面
这里写图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
pb 是 Protocol Buffer 的缩写,它是一种轻量级、高效的数据结构和序列化机制,用于在不同的软件系统之间进行数据通信和存储。 在调用 chrome 浏览器时,可以使用 pb 来实现与浏览器间的数据交互。通过定义适当的 Protocol Buffer 消息和服务,在客户端和服务端之间进行通信。 首先,需要定义一个 Protocol Buffer 的消息,用于传递与浏览器相关的信息,例如浏览器的命令、URL 等。消息的定义可以包括字段如下: message ChromeCommand { string command = 1; string url = 2; // 可以添加更多的字段 } 然后,定义一个 Protocol Buffer 的服务,用于发送和接收浏览器相关的消息。服务的定义可以包括方法如下: service ChromeService { rpc SendCommand(ChromeCommand) returns (ChromeResponse); // 可以添加更多的方法 } 在客户端的代码中,可以使用 pb 的库函数来创建一个 ChromeCommand 消息,设置浏览器的命令和 URL,并调用服务的 SendCommand 方法来发送消息给浏览器。 在服务端的代码中,可以实现 ChromeService 的接口,接收客户端发送的消息,并调用相应的浏览器 API 来执行浏览器相关的操作。最后,将结果封装成一个 ChromeResponse 消息,并返回给客户端。 总结起来,调用 chrome 浏览器可以通过使用 pb 的消息和服务来实现与浏览器的数据交互。使用 pb 提供的函数和接口,可以在客户端和服务端之间传递浏览器相关的命令和数据,实现功能的调用和结果的返回。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值