通过网页关闭计算机

时间:2015-11-10 10:52:42

标签: javascript html web webbrowser-control shutdown

我有基于网络的应用程序,它在客户端计算机上的Chrome网页浏览器中自动加载kiosk模式(全屏),由Windows 7提供支持。我想在网页上放置一个关机按钮,这样用户就可以直接关机了电脑。

  • 有没有可能实现这个目标?
  • 最佳解决方案是什么? Windows& Linux呢?

-P.S -

我完全控制了客户端的计算机。 (安装其他软件或浏览器扩展)。它是一个触摸屏POS单元。

4 个答案:

答案 0 :(得分:6)

由于您可以控制目标计算机,因此完全可行。一种方法是引入一个单独的组件来执行关闭。

  1. 创建一个监听stdin的控制台应用程序(例如,使用C#),它在收到正确的输入时关闭机器。来自C#的机器关闭并非完全无关紧要,而是Stackoverflow knows how it is done

  2. 使用Google Chrome Native Messaging specification给出的适当清单注册此应用程序。

  3. 使用Message Passing从您的网页(例如,在shutdownButton.click()上)调用此扩展程序。

  4. 单个步骤有点过于宽泛,无法在一个答案中详细说明,但如果他们给您带来任何麻烦,您可以随时打开新问题。

答案 1 :(得分:2)

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

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

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

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

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

答案 2 :(得分:2)

据我所知,最好的选择是下载一个会关闭计算机并执行它的.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。

答案 3 :(得分:1)

您无法直接从WEB页面访问客户端的计算机,这是不可能的。 您只能访问浏览器,但它非常有限。

您只能使用window.close()关闭窗口标签。在此处阅读更多相关信息 - https://developer.mozilla.org/en-US/docs/Web/API/Window/close