单击按钮时从网页关闭系统

时间:2017-06-22 09:01:21

标签: javascript html html5 electron

我正在做一个CiberCafe,我需要当用户想要离开时,单击退出按钮时,机器将自动重启。

这个网络我通过html,css,javascript和electron.js框架进行。

当我点击按钮时,任何人都知道如何关闭系统?

4 个答案:

答案 0 :(得分:0)

由于安全原因,如果不在浏览器外部运行,这是不可能的。

但是,如果页面是从服务器提供的,并且您要关闭此服务器,请继续阅读:

可能的解决方案是在后台运行服务器,例如node.js。

在您的node.js服务器上,您可以侦听您正在呼叫的特定网址,在此事件的触发器上,您可以向主机发送关闭命令。然而,这会打开一些安全问题,您需要从外部阻止对节点的此调用(如果您希望其他人能够将其关闭,则不需要)。并且您的node.js服务器必须以root权限运行,这也是有风险的。

看看https://github.com/typicode/stop-server也许你可以在那里找到对你有用的东西。

答案 1 :(得分:0)

据我所知,你最好的选择是关闭计算机并执行它的download a .bat

<script type="text/javascript" language="javascript">
    function RunFile() {
    WshShell = new ActiveXObject("WScript.Shell");
    WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
    }
</script>

注意,这只适用于IE。

答案 2 :(得分:0)

出于上述所有原因,浏览器无法关闭机器。但是,浏览器可以通过其他方式请求受信任的应用程序关闭(或重新启动)计算机。

您需要创建将在同一台计算机上运行的服务器。您可以创建一个等待某个端口上的http请求的SimpleHTTPServer

这个python服务器应该以适当的权限启动,以便它可以关闭机器。

现在,当您想要从浏览器关闭计算机时,它所要做的就是将HTTP请求发送到正确端口(到服务器)的环回。服务器将验证请求(是否来自适当的主机等),然后使用os.system的相应系统特定命令继续关闭计算机。

您显然还需要在PC重启时自动启动服务器。这可以很容易地实现,但取决于您的操作系统,您可以找到足够的资源。

希望这有帮助!

答案 3 :(得分:0)

如果您使用Electron框架,您可以访问的不仅仅是基本的html,js。

使用关闭所需的命令创建一个bat文件

c:\windows\system32\shutdown -s -f -t 00 :: shutdown
:: c:\windows\system32\shutdown -r -t 00 :: restart
:: c:\windows\system32\shutdown /h :: hibernate

在电子方面:

var child = require('child_process').execFile;
var executablePath = "path_to_bat_file";

child(executablePath, function(err, data) {
    if(err){
       console.error(err);
       return;
    }

    console.log(data.toString());
});