需求
主管说:现在工位机的chrome浏览器右上角的关闭按钮点击无效了,希望通过js调用bat文件,然后关闭chrome浏览器,于是发我两个链接让我参考。
步骤
1、创建bat脚本
新建一个 close-chrome.txt 文件(文件名随意),用taskkill终止chrome进程,文件内容如下:
taskkill /f /t /im chrome.exe
保存后将文件后缀改为bat。
2、创建reg注册文件,注册自定义协议
1、新建一个run-bat.txt文件(文件名随意),在这个文件里面去执行bat脚本,文件内容如下:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\myprotocol]
@="myprotocol Protocol"
"URL Protocol"= ""
[HKEY_CLASSES_ROOT\myprotocol\DefaultIcon]
@="C:\\Users\\Administrator\\Desktop\\close-chrome.bat"
[HKEY_CLASSES_ROOT\myprotocol\shell]
@= ""
[HKEY_CLASSES_ROOT\myprotocol\shell\open]
@= ""
[HKEY_CLASSES_ROOT\myprotocol\shell\open\command]
@="\"C:\\Users\\Administrator\\Desktop\\close-chrome.bat\""
2、修改上面文件中bat文件的路径,注意路径使用 \\ 分割。
文件内容大体意思是注册一个自定义的url协议(myprotocol),当使用"myprotocol://"开头的URL时,系统会执行指定的批处理文件(close-chrome.bat)来处理该url。
具体ai的解释如下:
//具体来说,这段代码做了以下几件事情:
1. [HKEY_CLASSES_ROOT\myprotocol]:创建一个名为"myprotocol"的注册表项,用于表示自定义URL协议。
- @="myprotocol Protocol":设置注册表项的默认值为"myprotocol Protocol",用于显示协议的描述。
2. [HKEY_CLASSES_ROOT\myprotocol\DefaultIcon]:创建一个名为"DefaultIcon"的子项,用于指定协议的默认图标。
- @="C:\\Users\\Administrator\\Desktop\\close-chrome.bat":设置注册表项的默认值为指向批处理文件的路径。
3. [HKEY_CLASSES_ROOT\myprotocol\shell]:创建一个名为"shell"的子项,用于定义协议的操作。
4. [HKEY_CLASSES_ROOT\myprotocol\shell\open]:创建一个名为"open"的子项,用于定义协议的打开操作。
5. [HKEY_CLASSES_ROOT\myprotocol\shell\open\command]:创建一个名为"command"的子项,用于定义打开操作的命令。
- @="\"C:\\Users\\Administrator\\Desktop\\close-chrome.bat\"":设置注册表项的默认值为指向批处理文件的路径。
3、保存 run-bat.txt文件后,将后缀修改为reg,然后双击run-bat.reg文件进行注册。
3、使用自定义的URL协议
在html中写个a标签然后使用这个协议,用到协议名就行。代码如下:
<a href="myprotocol://">
执行可执行文件
</a>
用户进行点击后就能关闭chrome了。
后续
如果应用是有对应桌面app的安装包,可以将reg和bat放入安装包中,这样就不用双击reg文件了。
总结
通过这一套思路应该可以实现类似百度网盘网页中打开对应app的功能,当然更细节的处理会比较麻烦。
当然,如果只是关闭某个标签页就不用这么麻烦。