公司要求开发出浏览器一键调用本地应用(CRT,XFTP,XSHELL)并登录功能

1、本地应用调用思路

开发的web是否支持IE

1.1、IE ActiveX 通过调用控件js文件中编辑代码如下:

<script type="text/javascript" language="javascript">function RunFile() {WshShell = new ActiveXObject("WScript.Shell");WshShell.Run('cmd /k F:\\SecureCRT\\SecureCRT.exe /SSH2 /L root /P 22 /PASSWORD root 172.16.4.65 & exit' );}window.onload = function(){RunFile();}
</script>

1.2、Google、Firefox启动

这个东西真的是折磨了一阵没思路后来一顿查找操作,发现可以通过修改注册表浏览器使用URL Protocol

1.2.1、思路一将CRT启动指令直接插入注册表启动CRT

Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\CRTTOOL]
@="CRTTOOL Protocol"
"url Protocol"=""[HKEY_CLASSES_ROOT\CRTTOOL\DefaultIcon]
@="CRTTool.exe,1"[HKEY_CLASSES_ROOT\DMPTOOL\shell]
@=""[HKEY_CLASSES_ROOT\CRTTOOL\shell\open]
@=""[HKEY_CLASSES_ROOT\DMPTOOL\shell\open\command]
@="\"C:\\CRTTool.exe\" \"%1\""

上方代码为crt.reg文件内容指定了浏览器访问指令为:CRTTOOL Protocol,软件.exe文件的存放位置%1为入参,即为你要传给exe文件的值。完整指令如下:

CRTTOOL ://F:\\SecureCRT\\SecureCRT.exe ssh2://root:root@172.16.4.65:22

出现问题
软件可以正常打开但是无法自动登录对应IP的账户

1.2.2、思路二通过JAVA加入中间件

我是学JAVA于是就有了以下操作,通过又一顿的查资料了解到,可以通过JAVA编写的exe程序来调用本地cmd程序执行指令实现软件启动,使用**main(String[] args)**自定义对exe的入参操作,实现登录。

import javax.swing.*;
import java.io.IOException;
import java.net.URLDecoder;/*** @description: TODO* @author: linyh* @date: 2020-03-25*/
public class tool {public static void main(String[] args) throws IOException {String msg = "";if (args != null && args.length > 0) {for (String str : args) {msg += str;}Runtime.getRuntime().exec("cmd /c " + URLDecoder.decode(msg.replace("dmptool://", "")));} else {JOptionPane.showMessageDialog(null, "程序启动发生异常");}}
}

页面调用 :
DMPTOOL://param --param为字符串入参,JAVA中对应main(String[] args)的args
注:如果路径中有空格就在param上加""号
示例:DMPTOOL://F:\SecureCRT\SecureCRT.exe ssh2://root:root@172.16.4.65:22
js调用

 window.location = 'DMPTOOL://"F:\\SecureCRT\\SecureCRT.exe ssh2://root:root@172.16.4.65:22"';

EXE
一、JAVAEXE 依赖jre请确保电脑已配置
二、执行.reg文件参考1.2.1修改软件路径与对应的名称即可
出现问题
软件可以正常打开账号正常登录但是需要jre

1.2.3、思路三C#编写中间键

没学过临时写的见谅

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;namespace ConsoleApp1
{class Program{static void Main(string[] args){if (args!=null && args.Length>0) {string strInput = "";foreach (string str in args){strInput += str;}Process p = new Process();//设置要启动的应用程序p.StartInfo.FileName = "cmd.exe";//是否使用操作系统shell启动p.StartInfo.UseShellExecute = false;// 接受来自调用程序的输入信息p.StartInfo.RedirectStandardInput = true;//输出信息p.StartInfo.RedirectStandardOutput = true;// 输出错误p.StartInfo.RedirectStandardError = true;//不显示程序窗口p.StartInfo.CreateNoWindow = true;//启动程序p.Start();//向cmd窗口发送输入信息p.StandardInput.WriteLine(System.Web.HttpUtility.UrlDecode(strInput.Replace("dmptool://", ""), System.Text.Encoding.UTF8) + "&exit");//p.StandardInput.AutoFlush = true;//获取输出信息//string strOuput = p.StandardOutput.ReadToEnd();//等待程序执行完退出进程//p.WaitForExit();p.Close();}}}
}

Crt、XFTP、XSHELL连接指令
CRT

      window.location = "DMPTOOL://F:\\SecureCRT\\SecureCRT.exe ssh2://root:root@172.16.4.65:22";

Xshell

      window.location = "DMPTOOL://D:\\Xshell\\Xshell.exe ssh://root:root@172.16.4.65:22";

Xftp

      window.location = "DMPTOOL://D:\\Xftp6\\Xftp.exe sftp://root:root@172.16.4.65:22";

2、附件地址

https://editor.csdn.net/md/?articleId=105383403

通过浏览器调用本地应用相关推荐

  1. AppEmit v0.9.5 新功能 浏览器调用本地应用程序 支持打开 编辑 金山 wps office, excel ppt

    AppEmit v0.9.5 新功能 浏览器调用本地应用程序 支持打开 编辑 金山 office   更多主页   下载地址   ​​​​​​​ 能在以及几乎所有支持websock浏览器,包括chro ...

  2. 浏览器调用本地应用程序

    第一次遇到这个问题是比较蒙的,后来查找资料后逐渐有了思路: IE 浏览器可以使用 ActiveX控件,但会有风险(我并未去验证). 使用URL ,通过将URL协议添加到注册表的方法(我打算采用这种方法 ...

  3. vue3+jsQr实现手机浏览器调用本地摄像头扫描并识别二维码

    最近做的项目有个需求是在手机端打开页面,登录之后能在手机上扫描二维码并根据扫描的结果去查询班级情况.别的功能就不说了,移动端扫描二维码这个以前没做过,所以在这里记录一下. 项目用到的技术栈: Vue ...

  4. ie浏览器调用本地文件无反应_win7 ie浏览器打不开本地htm文件

    展开全部 此类问题可以用腾讯电脑管家电脑诊所一键修复,e69da5e887aa3231313335323631343130323136353331333332633036请点击上方的[立即修复]即可. ...

  5. ie浏览器调用本地文件无反应_我的ie浏览器为什么打不开本地的网页文件啊?...

    展开全部 造成IE和其它浏览器崩溃的原因是很多的,像IE组件被破坏,或者硬件设备不支持物理加62616964757a686964616fe4b893e5b19e31333332633035速等,都可能 ...

  6. ie浏览器调用本地文件无反应_ie浏览器打不开没反应

    2016-11-29 16:12:36 在win7系统中,自带有IE浏览器,方便用户浏览一些网站,可是近日有雨林木风win7旗舰版系统用户在打开IE浏览器的时候,提示无法打开Internet站点,导致 ...

  7. ie浏览器调用本地文件无反应_IE浏览器工具--internet选项--设置--查看文件为什么打不开没反应...

    展开全部 这种情况,最快捷的方式是使用电脑62616964757a686964616fe78988e69d8331333332633536管家的电脑诊所功能修复一下,一键就可以完成,避免复杂的手动修复 ...

  8. 网页(浏览器)调用本地exe应用软件

    1. 背景 为什么要学习网页调用本地exe?因为项目有一个需求,就是通过页面的按钮,点击调用本地的GUWP(exe软件),使其可以直接登录和打开. 而exe应用软件,它只能通过cmd进行操作和数据的传 ...

  9. html调用deeplink,如何优雅地从浏览器打开本地应用deeplink

    相信Android开发者都会知道,在应用内跳转页面,我们肯定会用到 Intent.使用 Intent 跳转页面有显式跳转和隐式跳转两种方式. Intent intent = new Intent(); ...

最新文章

  1. web前端技巧-ES6新特性与重点知识汇总(一)
  2. RunDll32.exe 详解及[Windows批处理]清除IE缓存
  3. android studio json插件_热门Android Studio 插件,这里是Top 20
  4. 局域网中传输介质的应用分析
  5. 陈天奇的tvm更新了:VTA,开源AI芯片栈
  6. houghlinesp找到多条直线_拿什么拯救焦虑的你,一个有勇气的人终将找到他的路...
  7. centos 6.5 安装mysql rpm_centos6.5 rpm 安装mysql5.6
  8. 生信必备技巧之R语言基础教程01——R、Rstudio以及R包的安装载入
  9. 目标检测---搬砖一个ALPR自动车牌识别的环境
  10. 钻井液中PHP是指什么,关于钻井液,你必须知道这些…
  11. 时差怎么理解_懂的人自然懂,不懂的人再多解释也有时差
  12. 计算机控制电缆单价,zr-djyvrp3X2X0.5阻燃计算机控制电缆单价
  13. Assassin’s Creed(hdu4415,贪心)
  14. 【题解】codeforces 1023G. Pisces 最长反链 数据结构维护差分 启发式合并
  15. react中使用web worker
  16. 微博已成中国和世界真正的“连接器”
  17. python怎么输入括号
  18. 小程序、APP、企业网站开发工具有哪些?如何使用软件开发工具?
  19. 阿里云效git仓库的创建与使用
  20. Java 8 中 GZIPInputStream 类源码分析

热门文章

  1. 《C++初阶之路》函数重载
  2. 微信小程序nodejs+python+php+springboot+vue 法律知识分享科普系统平台
  3. nofollow标签如何使用
  4. 文件服务器录音功能,录音地址
  5. PING 丢包 故障解决思路
  6. 手游天涯明月刀服务器维护到几点,天涯明月刀手游10月20日维护到几点
  7. OpenCV制作简易的图像标注小工具
  8. 【线上直播】大咖云集,共同探讨区块链开源最佳实践及场景应用
  9. Linux —— 进程概念超详解!
  10. 安装Pycharm和Anaconda出现failed to create anacoda menue的解决办法