网页中调用本地可执行程序需要在注册表HKEY_CLASSES_ROOT下注册基于URL Protocol协议的注册表子项,便于在网页中以命令形式调用本地可执行程序。
注册表子项的结构如下所示(假设注册的命令为callexe),其中需要在callexe项右侧新增名为URL Protocol的字符串值,值可以为空,但该字符串值必须要有,否则无法在网页中调用callexe命令,同时在command子项右侧的默认属性中设置要调用的exe文件的绝对路径,最简单的就是设置这两处属性,然后就可以在网页中调用,参考文献1-5中的示例还设置了DefaultIcon的属性值,不过测试时发现不设置该值也可以调用本地程序。
bash
HKEY_CLASSES_ROOT
callexe
DefaultIcon
shell
open
command
在HKEY_CLASSES_ROOT下也有常见的程序注册的命令,如下所示的百度云管家的命令、360等,有兴趣的可以到HKEY_CLASSES_ROOT找找。
以启动红警2程序,在HKEY_CLASSES_ROOT下创建redalert2的子项,结构如下所示:
在网页中调用的示例如下所示,启动程序的截图如下:
html
<body>
<a href = 'redalert2:'>启动红警2</a>
</body>
如果需要传递参数,要在command子项中以"exepath" "%1"的形式设置参数接收形式,如下图所示,后续会编写程序测试参数接收功能。
参考文献:
[1]https://blog.csdn.net/m0_55074611/article/details/131108694
[2]https://blog.csdn.net/hope93/article/details/102501945
[3]https://blog.csdn.net/weixin_40873693/article/details/129166435
[4]https://blog.csdn.net/WuLex/article/details/89442002
[5]https://www.cnblogs.com/bdqczhl/p/14720665.html
[6]https://blog.csdn.net/m0_45406092/article/details/105244959