Javascript 单击按钮时从网页关闭系统
我正在做一个CiberCafe,我需要当用户想要离开时,当点击退出按钮时,机器将自动重启 我正在通过html、css、javascript和electron.js框架创建这个webJavascript 单击按钮时从网页关闭系统,javascript,html,electron,Javascript,Html,Electron,我正在做一个CiberCafe,我需要当用户想要离开时,当点击退出按钮时,机器将自动重启 我正在通过html、css、javascript和electron.js框架创建这个web 有人知道我如何在单击按钮时关闭系统吗?由于安全原因,如果不在浏览器外运行某些内容,这是不可能的 但是,如果页面是从服务器提供的,并且您想关闭此服务器,请继续阅读: 一个可能的解决方案是在后台运行服务器,例如node.js 在node.js服务器上,您可以侦听正在调用的特定url,在触发此事件时,您可以向主机发送关机命
有人知道我如何在单击按钮时关闭系统吗?由于安全原因,如果不在浏览器外运行某些内容,这是不可能的 但是,如果页面是从服务器提供的,并且您想关闭此服务器,请继续阅读: 一个可能的解决方案是在后台运行服务器,例如node.js 在node.js服务器上,您可以侦听正在调用的特定url,在触发此事件时,您可以向主机发送关机命令。但是,这会带来一些安全问题,您需要阻止从外部对节点的调用(如果您希望其他人能够关闭它,则不需要)。您的node.js服务器必须使用root权限运行,这也是有风险的
看一看,也许你能在里面找到对你有用的东西。我认为你最好的办法是关闭你的计算机并执行它
<script type="text/javascript" language="javascript">
function RunFile() {
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
}
</script>
函数RunFile(){
WshShell=newActiveXObject(“WScript.Shell”);
运行(“c:/windows/system32/notepad.exe”,1,false);
}
注意,这仅适用于IE。由于上述所有原因,浏览器无法关闭机器。但是,浏览器可以通过其他方式请求受信任的应用程序关闭(或重新启动)计算机 您需要创建在同一台计算机上运行的服务器。您可以创建一个将在特定端口上等待http请求的 这个python服务器应该以适当的权限启动,这样它就可以关闭机器 现在,当您想从浏览器关闭计算机时,它所要做的就是发送一个HTTP请求,以在正确的端口(到服务器)上进行环回。服务器将验证请求(是否来自适当的主机等),然后使用
os.system
的适当系统特定命令继续关闭机器
显然,您还需要在电脑重新启动时自动启动服务器。这很容易实现,但取决于您的操作系统,您可以找到足够的资源来实现这一点
希望这有帮助 如果您使用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());
});
由于安全原因,您无法从网页执行此操作。如果你能做到这一点,用户浏览的任何网页都可以做到,而你肯定不希望这样。你不需要重新启动,你只需要启动一个新的登录会话或者别的什么。有一些免费的“internet kiosk”类型的应用程序/操作系统,你可以用谷歌搜索,也许其中一个可以满足你的需要。但这些都不是通过网页可以做到的。@ADyson可能是在尝试使用包含浏览器的electron.js框架来做到这一点。@HariDas很好,我只是假设electron是另一个web GUI框架。但谷歌快速提出,它可以用来构建桌面应用程序。在这种情况下,如果O/S有正确的绑定可用,应用程序可能会使其注销(我仍然认为它应该注销,而不是重新启动,不需要这样做)。由于不熟悉该框架,很遗憾,我不能说更多。在这种情况下,OP可以使用脚本杀死electron。我有批处理文件在超过时间限制时杀死electron。我不能为OP说话,但如果我经营一家网吧,我当然不希望启用ActiveX。事实上,我很有可能不使用Windows。鉴于ActiveX自2015年以来一直不受支持,IE实际上已经过时(11将是最后一个版本),它作为解决方案不会持续很久。另外,和我一样,你也没有注意到OP中提到的electron框架,它用于构建桌面应用程序,因此下载批处理文件应该是不必要的,因为应用程序无论如何都在桌面上运行。我已经将你的代码包含在electron中的javascript函数中,并通过单击按钮调用它,但不执行任何调试操作!它不能‘什么都不做’:)你的评论无助于我进一步帮助你:)我已经成功了!我查看了条目检查,发现它有语法错误。谢谢你的帮助,使我免于匆忙!