使用web调用本地的程序(windows)

jumpserver的解决方案以及解决过程见链接
jumpserver解决方案
使用注册表的方式:
1、首先编辑注册表文件

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\YourApplication]
"URL Protocol"="C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
@="YourApplication"
[HKEY_CLASSES_ROOT\YourApplication\DefaultIcon]
@="C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe,1"
[HKEY_CLASSES_ROOT\YourApplication\shell]
[HKEY_CLASSES_ROOT\YourApplication\shell\open]
[HKEY_CLASSES_ROOT\YourApplication\shell\open\command]
@="\"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\" \"%1\""

其中,URL Protocol是待调用的应用程序本地的所在位置(注意单斜杠需要改为双斜杠),YourApplication这里是你想取得应用的名字(一会儿在web端会用到,名称要对应)。然后将上述文件保存为.reg文件,并添加到注册表中。

2、添加到注册表后,编辑网页端文件,这里以index.html为例。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  </head>
    <body>
        <div>
            <a href="YourApplication:hello/">autologintest</a>
        </div>
    </body>
</html>

其中
<a href="YourApplication:hello/">autologintest</a>
这里的YourApplication就是前面对应的应用的名称,冒号后面是要传递给该应用得参数,这里是hello。打开上述的.html文件,如下图所示。
在这里插入图片描述
点击上述链接,即可调用本地应用程序。

自动读取本地安装路径并自动加入到注册表中的python代码

#!/usr/bin/python
#encoding:utf-8
import sys
import os
import win32api
import win32con

def find_path(name='MobaXterm.exe'):	# 查找的软件名称
    path = None
    key = rf'SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store'
    #通过获取Windows注册表查找软件
    key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, key, 0, win32con.KEY_READ)
    #| win32con.KEY_WOW64_64KEY)
    info2 = win32api.RegQueryInfoKey(key)
    
    for j in range(0, info2[1]):
        key_value = win32api.RegEnumValue(key, j)[0]
        if key_value.endswith('MobaXterm.exe'):
            path = key_value
            break
    win32api.RegCloseKey(key)
    return path	#返回查找到的安装路径

    

# 下面可忽略
sys.path.append(find_path())#将获取的安装路径添加到环境变量
paths = find_path()
print(paths)
intab = '\\'
outtab = '\\\\'
trantab = paths.replace(intab, outtab)
paths = trantab



file = open('D://tests.reg','w')
file.write("Windows Registry Editor Version 5.00\n")
file.write("[HKEY_CLASSES_ROOT\YourApplication]\n")
file.write("\"URL Protocol\"=" "\""+ paths +"\"""\n")
file.write("@=\"YourApplication\"\n")
file.write("[HKEY_CLASSES_ROOT\YourApplication\DefaultIcon]\n")
file.write("@=\""+ paths + ",1" + "\"\n")
file.write("[HKEY_CLASSES_ROOT\YourApplication\shell]\n")
file.write("[HKEY_CLASSES_ROOT\YourApplication\shell\open]\n")
file.write("[HKEY_CLASSES_ROOT\YourApplication\shell\open\command]\n")
file.write("@=\"\\\"" + paths +"\\\"\"%1\"\"\n")

res = os.system('D://tests.reg')




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值