javascript 通过网页关闭计算机

pkln4tw6  于 2023-04-19  发布在  Java
关注(0)|答案(5)|浏览(152)

我有一个基于Web的应用程序,它会自动加载在亭模式(全屏)在 chrome 网络浏览器在客户端的计算机上,这是由Windows 7供电。我想在网页上放置一个关机按钮,以便用户可以直接关闭计算机。

  • 有没有可能做到这一点?
  • Windows和Linux的最佳解决方案是什么?

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

hm2xizp9

hm2xizp91#

由于您可以控制目标机器,这是完全可行的。一种方法是引入一个单独的组件来执行关机。
1.创建一个控制台应用程序(例如使用C#),它监听stdin,当它收到正确的输入时关闭机器。从C#关闭机器并不完全是微不足道的,而是Stackoverflow knows how it is done
1.根据Google Chrome Native Messaging规范,使用适当的清单注册此应用程序。
1.使用Message Passing从您的网页(例如,在shutdownButton.click()上)调用此扩展。
单个步骤有点太宽泛,无法在一个答案中完全详细说明,但如果它们给您带来任何麻烦,您可以随时打开新的问题。

7kjnsjlb

7kjnsjlb2#

由于安全原因,如果不运行浏览器之外的东西,这是不可能的。
但是,如果页面是从服务器提供的,并且您希望关闭此服务器,请继续阅读:
一个可能的解决方案是在后台运行服务器,例如node.js。
在你的node.js服务器上,你可以监听你正在调用的特定url,在这个事件触发时,你可以向你的主机发送一个shutdown命令。然而,这会带来一些安全问题,你需要从外部阻止这个对node的调用(或者如果你希望其他人能够关闭它,就不要这样做)。而且你的node.js服务器必须以root权限运行,这也是有风险的。
看看https://github.com/typicode/stop-server,也许你能在里面找到对你有用的东西。

jexiocij

jexiocij3#

你最好的选择,据我所知,将是下载一个.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。

kh212irz

kh212irz4#

你不能直接从WEB页面访问客户的计算机,这是不可能的。你只能访问浏览器,但它是非常有限的。
您只能使用window.close()关闭窗口选项卡。在此了解更多信息-https://developer.mozilla.org/en-US/docs/Web/API/Window/close

y53ybaqx

y53ybaqx5#

您可以尝试通过API调用触发批处理脚本来关闭设备。

string startupPath = System.Environment.CurrentDirectory;
string path = System.IO.Path.GetFullPath(@"..\..\");
string BatchFilePath = startupPath + LogoffTriggerBatchFile;
ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe", "/c " + BatchFilePath);
processStartInfo.RedirectStandardOutput = true;
processStartInfo.CreateNoWindow = true;
processStartInfo.UseShellExecute = false;
Process process = Process.Start(processStartInfo);
return new HttpResponseMessage(HttpStatusCode.OK);

相关问题