网页如何调用本地exe?

作者站长头像
站长
· 阅读数 17

我现在想在网页调用本地exe程序,现在浏览器可以支持这个吗?请教一下懂的同学,如何调取?

根据几位答主与参考网上的答案:通过注册表自定义协议,网页可以调用本地exe.1.添加注册表注册表内容如下:

Windows Registry Editor Version 5.00

;CallBSEXEPrint表示自定义的URL Protocol协议名称
[HKEY_CLASSES_ROOT\CallBSEXEPrint]
@="URL: CallBSEXEPrint Protocol Handler"
"URL Protocol"=""

;E:\\localExe\\gy_print.exe 为本地EXE路径
[HKEY_CLASSES_ROOT\CallBSEXEPrint\DefaultIcon]
@="E:\\localExe\\gy_print.exe"

[HKEY_CLASSES_ROOT\CallBSEXEPrint\Shell]

[HKEY_CLASSES_ROOT\CallBSEXEPrint\Shell\Open]

;如果该本地EXE有参数可以在exe后加参数:@="\"E:\\localExe\\gy_print.exe\" %1"
;如果没有参数:@="E:\\localExe\\gy_print.exe "
[HKEY_CLASSES_ROOT\CallBSEXEPrint\Shell\Open\Command]
@="\"E:\\localExe\\gy_print.exe\" %1"

将上面的文字保存文件,并改为.reg结尾的文件,然后双击,会自动注册到注册表。2.测试网页调用:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body style="display: flex;justify-content:center;">
  <!-- 36为传递给exe的参数 -->
  <a href="CallBSEXEPrint://36">调用exe,并传参</a>
  
  <a href="CallBSEXEPrint://">调用exe,不传参</a>
</body>
</html>

测试结果:网页如何调用本地exe?网页如何调用本地exe?但是我想传给exe的参数其实是:E:\localExe\36.xlt,类似下面:网页如何调用本地exe?但是通过协议打开的却是传递的是C盘的参数,路径错误,不知道怎么回事?

回复
1个回答
avatar
test
2024-07-13

不能直接运行 .exe 程序,但是可以通过 URL Scheme 去唤起系统中已经存在的应用。比如说以前的点击分享到QQ这种实现方式。但是前提条件是电脑上面的应用有在注册表注册对应的 APP Scheme

具体可以参考古早我的这篇笔记,里面有提到过这个方式,也可以直接点击查看微软提供的文档 Registering an Application to a URI Scheme (Windows) | Microsoft Learn

最好是你们内部开发这个PC应用程序的人去配合你,在安装的时候就直接注册好。不然每一台都去手动改注册表或者提供脚本给他们然后双击运行实在是太麻烦了,而且很多公司配发的电脑都是受控域账户就更加麻烦。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容