网页中调用本地可执行程序需要在注册表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 \[7\]https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa767914%28v=vs.85%29