windows操作系统通过浏览器调用本地程序

本文介绍了如何在Windows操作系统中通过自定义URL协议,实现在浏览器中调用本地程序,以重启系统为例,详细阐述了注册自定义协议、编写HTML代码、验证操作以及导出和导入注册表项的步骤,适用于B/S架构的一体机项目。

通过浏览器调用本地程序通常被认为是危险的行为,是被禁止的,但在基于B/S架构的一体机项目中会用到关闭或重启操作系统的操作。此时需要在前端页面有相应的功能按钮并能实现相应的功能。

通过浏览器调用本地应用程序通常需要使用浏览器扩展或本地应用程序与浏览器之间的通信,这种通信需要通过自定义URL协议来实现,本文就以win10操作系统为例一步步的实现一个通过浏览器按钮重启操作系统的小案例。

1.自定义URL协议

在本地系统上注册一个自定义的URL协议,并在浏览器中创建一个链接,当用户点击该链接时,会触发本地应用程序打开。这个方法可以让你通过浏览器来启动本地程序。

例如,在Windows上,你可以注册一个自定义的URL协议,比如myapp://,然后在HTML中创建一个链接:

<a href="myapp://open">打开本地程序</a>

当用户点击这个链接时,浏览器将尝试启动关联的本地应用程序。

我们的本地应用程序很简单就是一个重启系统的批处理文件。我们在E盘根目录下新建一个“reboot.bat”批处理文件,写入以下内容。

@echo off
shutdown /r /t 0

💁‍♂ 为了后面的操作,建议先双击这个批处理文件,看看是否能正常重启系统。

下面就是自定义URL协议的步骤:

  1. 打开注册表编辑器(Registry Editor)。你可以按下 Win + R 键,然后输入 regedit 并按回车键来打开它。在这里插入图片描述
    2.转到以下注册表项(如果没有则需要创建):
HKEY_CLASSES_ROOT\<your_protocol>

其中 <your_protocol> 是你想要注册的自定义协议的名称,例如 myapp在这里插入图片描述
在这里插入图片描述
💁‍♂ 在新建myapp项时注意要为默认子项添加URL:myappURL名称,并新建一个名称为URL Protocol的空子项。

  1. 在这个注册表项下,创建一个子项 shell,并在 shell 下创建一个子项 open

  2. open 子项下创建一个字符串值(String Value),并将其命名为 command

  3. 设置 command 的值为你的本地应用程序可执行文件的路径,包括可执行文件的名称。例如:

    "C:\path\to\your\app.exe"
    

在这里插入图片描述

  1. 至此你新建URL的工作已经完成,接下来就可以在浏览器中使用 myapp:// 打开上述新建的本地应用程序了。

2.编写HTML代码

新建一个简单的HTML页面,写入以下内容。

<html>
<head>
<title>this is a test</title>

</head>

<a href="myapp://">打开本地程序</a>


</html>

3.验证

通过以上步骤,我们的准备工作已经完成,下面就打开浏览器,来验证是否能够通过浏览器上的按钮来实现重启操作系统的目标。

💁‍♂ 第一次运行时浏览器会弹出安全提示,此时要采允许。有些杀毒软件也会禁止该操作,也要选择允许才可以。
在这里插入图片描述

4.导出自定义的URL注册表项

本案例通过修改了windows的注册表添加自定义的URL,大部分程序员对windows注册表并不太熟悉,稍有不甚就有可能把系统干崩溃,所以在操作注册表的时候要小心。

在通过验证可以生效的自定义URL注册项,可以通过导出注册表项的方式在相同的操作系统中进行快速分享。

4.1 导出注册表项

打开注册表,找到我们要导出的注册表项,右键选择导出。
在这里插入图片描述
导出范围选择所选分支,并指定文件名和位置就可以导出注册表项了。

在这里插入图片描述
完成上述操作后,在你的导出位置就出现了一个myapp.reg的文件,这个文件就是我们前面自定义的URL注册项。
在这里插入图片描述

4.2 导入注册表项

如果其他相同版本的windows用户也需要使用相同的自定义URL注册表项,我们就不需要通过打开注册表一项项的手动添加了,只需要将上一步我们导出的注册表项复制到目标系统中,通过双击myapp.reg就可以快速导入了。

以上就是一个简单的使用浏览器操作本地应用程序的小例子,大家可以举一反三应用到自己的应用中去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

alfiy

请博主喝瓶矿泉水吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值