我正在做一个CiberCafe,我需要当用户想要离开时,单击退出按钮时,机器将自动重新启动。当您点击一个按钮时从网页关闭系统
这个网络我正在通过HTML,CSS,JavaScript和electron.js框架。
任何人都知道我可以关闭系统,当我点击一个按钮?
我正在做一个CiberCafe,我需要当用户想要离开时,单击退出按钮时,机器将自动重新启动。当您点击一个按钮时从网页关闭系统
这个网络我正在通过HTML,CSS,JavaScript和electron.js框架。
任何人都知道我可以关闭系统,当我点击一个按钮?
如果您使用Electron框架,您可以访问的不仅仅是基本的html,js。
与需要关机
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());
});
我已经将你的代码包含在一个javascript函数中,并通过点击一个按钮来调用它,但什么都不做 –
调试它!它不能'无所事事':)你的评论并没有帮助我进一步帮助你:) – bluehipy
我已经做到了! 我看了一下物品检查,发现它有语法错误。 谢谢你的帮助,使我匆匆救了我! –
由于安全原因,如果不在浏览器外部运行某些功能,这根本无法实现。
然而,如果页面是由服务器提供的,你想关闭该服务器,请继续阅读:
这将是可能的解决方案是在后台运行的服务器,例如node.js中
在你的node.js服务器上,你可以监听你正在调用的特定url,在这个事件的触发器上,你可以发送关机命令给你的主机。然而,这会造成一些安全问题,您需要阻止来自外部的此节点呼叫(或者如果您希望其他人能够将其关闭)。而你的node.js服务器必须以root权限运行,这也是有风险的。
看看https://github.com/typicode/stop-server也许你可以在那里找到对你有用的东西。
根据我的想法,您最好打赌的是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浏览器。
我不能说OP,但如果我正在运行网吧,我当然不希望启用ActiveX。事实上,我甚至不会使用Windows。考虑到自2015年以来ActiveX尚未得到支持,而且IE现在已经死亡(其中11个将成为最后一个版本),但它不会持续太久。此外,像我一样,你错过了OP所谈论的用于构建桌面应用程序的电子框架,因此无需下载批处理文件,因为该应用程序无论如何都在桌面上运行。 – ADyson
由于上述所有原因,浏览器不能在关机。但浏览器还可以通过其他方式请求受信任的应用程序关闭(或重新启动)机器。
您将需要创建将运行在同一台计算机上的服务器。您可以创建一个SimpleHTTPServer,它将等待某个端口上的http请求。
这个python服务器应该以适当的权限启动,以便关闭机器。
现在,当您想从浏览器关闭机器时,只需发送一个HTTP请求,以便在正确的端口(到服务器)上进行环回。服务器将验证请求(无论它是否来自适当的主机等),然后使用适当的系统特定命令os.system
继续关闭机器。
您显然也需要服务器在PC重新启动时自动启动。这可以很容易地实现,但取决于您的操作系统,您可以找到相同的资源。
希望这会有所帮助!
你不能从一个网页做,因为这种安全。如果_you_能够做到这一点,用户浏览的任何网页都可以做到,而且您肯定不会想要这样做。无论如何你并不需要重新启动,你只需要开始一个新的登录会话或其他东西。有一些免费的“互联网亭”类型的应用程序/操作系统,你可以谷歌,也许其中一个将满足您的需求。但这些都不是通过网页可以完成的。 – ADyson
@ADyson可能他试图用electron.js框架来包装浏览器。 –
@HariDas好点我只是假设电子是另一个网页GUI框架。但一个快速谷歌表明,它可以用来建立桌面应用程序。在这种情况下,应用程序可能会使其注销,如果有正确的绑定可用于操作系统(我仍然会说它应该注销,不重新启动,不需要这样做)。不熟悉这个框架我不能说比这更不幸。 – ADyson