我有基于Web的应用程序,它自动加载在客户端的计算机上的铬浏览器上的Kiosk模式(全屏),这是由Windows 7支持的。我想在网页上放置一个关机按钮,所以该用户可以直接关闭电脑。关闭计算机通过网页
- 是否有可能实现这一目标?
- 什么是 Windows & Linux的最佳解决方案?
-P.S-
我已经在客户的计算机完全控制。 (安装其他软件或浏览器扩展)。它是一个触摸屏POS单元。
我有基于Web的应用程序,它自动加载在客户端的计算机上的铬浏览器上的Kiosk模式(全屏),这是由Windows 7支持的。我想在网页上放置一个关机按钮,所以该用户可以直接关闭电脑。关闭计算机通过网页
-P.S-
我已经在客户的计算机完全控制。 (安装其他软件或浏览器扩展)。它是一个触摸屏POS单元。
由于您可以控制目标机器,所以这是完全可行的。一种方法是通过引入一个单独的组件来执行关闭。
创建监听标准输入一个控制台应用程序(使用C#,例如),当它接收到右输入用于关闭机器。从C#机器关机并不是完全无关紧要的,但Stackoverflow knows how it is done。
注册该应用程序与给定的Google Chrome Native Messaging specification适当的清单。使用Message Passing
调用此扩展名从你的网页(上shutdownButton.click(),例如)。
的各个步骤都有点过于宽泛全面详细介绍它们在一个单一的答案,但你总是可以打开他们新的问题,如果他们给你带来任何麻烦。
您没有从WEB页面直接访问客户端的计算机,这是不可能的。 您只能访问浏览器,但它非常有限。
只能使用window.close()
关闭窗口选项卡。了解更多关于在这里 - https://developer.mozilla.org/en-US/docs/Web/API/Window/close
由于安全的原因,这是根本不可能没有你的浏览器外运行的东西。
然而,如果页面是由服务器提供的,你想关闭该服务器,请继续阅读:
这将是可能的解决方案是在后台运行的服务器,例如node.js中你可以听你所拨叫特定的URL
在您的Node.js服务器,在此事件的触发,你可以发送关机命令到您的主机。然而,这会造成一些安全问题,您需要阻止来自外部的此节点呼叫(或者如果您希望其他人能够将其关闭)。而你的node.js服务器必须以root权限运行,这也是有风险的。
看看https://github.com/typicode/stop-server也许你可以在那里找到对你有用的东西。
你最好的选择,只要我能想到的将是下载一个.BAT,将关闭您的计算机并执行它,但除了IE我不知道是否会工作。
<script type="text/javascript" language="javascript">
function RunFile() {
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
}
</script>
沿着这些线,运行您以前下载的.bat文件而不是记事本。请注意,这只适用于IE。
window.close只有在用户操作触发时才会起作用,例如点击。你应该在你的帖子中提及。 –