【问题标题】:Call Shutdown.exe from a JS function从 JS 函数调用 Shutdown.exe
【发布时间】:2017-04-04 17:53:34
【问题描述】:

当按下退出按钮时,我有这个来关闭 IE:

function uf_LoginCloseWindow()
{
   window.close();
}

我想这样做:

function uf_LoginCloseWindow()
{
   c:\windows\system32\shutdown.exe -f -l
}

似乎无法让它工作,我试过了:

var objShell = new ActiveXObject("WScript.shell");
objShell.Run("C:\windows\system32\shutdown.exe");

我能从开发者控制台得到的只是“属性‘uf_LoginCloseWindow’的值为空或未定义,不是函数对象”

有什么想法吗?

【问题讨论】:

  • 您可以通过文件关联来完成。制作一个关闭的bat文件。从页面下载未知的 mime 类型文件。当第一次出现提示时,选择“打开”,然后浏览到 bat 文件并将其选择为打开器应用程序(可能需要先在文件名框中键入 *)。选择记住动作。现在,每次您生成该 mime 类型的下载文件时,bat 都会运行并关闭系统。您可以使用github.com/rndme/download 触发下载任何mime;文件的内容无关紧要。

标签: javascript


【解决方案1】:

你可以关闭窗口,但你不能单独用javascript整体关闭正在运行的程序。这超出了 javascript 的安全范围。不要试图找到一个黑客来实现它,因为这对于浏览网络的人来说是一件可怕的事情。

【讨论】:

  • 用户不会浏览互联网,他们正在使用它来运行从 IE 页面启动的应用程序——我切断了所有 LAN-WAN 访问;我可以改用 vbscript 吗?
  • 一个签名的 Java 小程序可以做到这一点。并且可能存在activeX hack。但我会建议一条不同的路径。为什么需要它来关闭窗口?如果您想要“桌面应用程序”功能,为什么不使用 C# 或类似的东西制作一个简单的桌面应用程序?最好不要强迫浏览器做它不打算做的事情。
  • 它实际上是为了在 IE 关闭时从 Windows 中注销用户——这是作为 RemoteApp 运行的,但来自第三方 Citrix 类程序。我希望退出按钮不仅关闭 IE 还注销用户的原因是因为在系统自己执行此操作之前有 20 秒的黑屏 - 真的只需要更顺畅的注销。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-29
  • 2018-07-05
  • 2019-04-21
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多