我正在做一个CiberCafe,我需要当用户想要离开时,单击退出按钮时,机器将自动重启。
这个网络我通过html,css,javascript和electron.js框架进行。
当我点击按钮时,任何人都知道如何关闭系统?
答案 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());
});