如何在Windows中通过命令行退出Firefox而又不强制退出?

马蒂亚斯

我想从命令行退出Firefox,而无需“强制”退出。我只想引起与在Firefox中单击“退出”相同的原因。

似乎我需要基于以下方式以某种方式调用“ goQuitApplication”。

我尝试制作一个xul文件并运行该文件,但出现错误。我尝试从此Mozillazine帖子中运行文件,但是Firefox在控制台中说“ TypeError:Components.classes未定义”。

以下是该xul文件的代码:

Remote XUL Manager by Jorge Villalobos
https://addons.mozilla.org/firefox/addon/235281/

Domains with remote XUL permission: <Local files>

Loads the specified chrome:
firefox -chrome example.xul

-->

<window onload="load()"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <script type="application/javascript">
  <![CDATA[

    function load() {
      var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].
        getService(Components.interfaces.nsIWindowMediator);
      var win = wm.getMostRecentWindow("navigator:browser");
      win.setTimeout("goQuitApplication()", 250);
      window.close();
    }

  ]]>
  </script>

</window>

我试过简单地在加载函数中调用“ goQuitApplication”(如果在浏览器控制台中调用,这似乎可以工作),但随后出现错误“ ReferenceError:未定义goQuitApplication”。

有谁知道从命令行退出Firefox而不用强行杀死进程或关闭单个窗口的好方法吗?

邦尼规则

昨天我实际上遇到了这个问题。我一直在寻找答案。如果您仅打开一个窗口(一个简单的taskkill行,没有/ f以便浏览器可以干净地关闭),那没什么大不了的,但是一旦您拥有两个或更多窗口,它就会变得更加复杂,因为taskkill命令只会一次拍摄一个窗口(除非最后一个关闭窗口,否则有效地松开窗口的选项卡)。

我最终编写了cmd / vbs脚本组合以干净地关闭Firefox。脚本将检测是否打开并关闭了“主密码”提示(避免提示干扰FFQuit脚本),然后FFQuit脚本将激活FF并发送Alt-F按键打开文件菜单,并发送X退出firefox。

在那里,您可以快速而干净地退出,重新启动后所有窗口都将返回。也可以选择重新启动FF(只是相关部分未介绍):

第1部分:封装的cmd脚本:quitFF.cmd

set FFexec=%programfiles(x86)%\Mozilla Firefox\firefox.exe
set ERRORLEVEL=

:: Check if that annoying Master Password prompt is open and close it
tasklist /FI "WINDOWTITLE eq Password Required" 2>NUL | find /I /N firefox.exe">NUL
IF "%ERRORLEVEL%"=="0" MPWDclose.vbs

FFQuit.vbs

::Optional Restart Firefox - ping is just a sneaky way of getting sleep functionality
::Uncomment REM to activate
REM ping 1.0.0.0 -n 1 -w 2000 > nul
REM start ""  "%FFexec%" & exit

第2部分:MPWDclose.vbs

Set MPWDclose = WScript.CreateObject("WScript.Shell")

WScript.Sleep 250
MPWDclose.AppActivate("Password Required")
WScript.Sleep 250
MPWDclose.Sendkeys "{ESC}"
WScript.Sleep 50
WScript.Quit

第3部分:FFQuit.vbs

Set FFquit = WScript.CreateObject("WScript.Shell")
WScript.Sleep 250
FFquit.AppActivate("- Mozilla Firefox")
WScript.Sleep 250
FFquit.Sendkeys "%F"
WScript.Sleep 100 
FFquit.Sendkeys "x"
WScript.Quit

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Windows命令行命令强制退出代码为零

Gradle-如何在doLast中执行命令行并获取退出代码?

从python命令行退出

如何在不停止程序的情况下退出命令行输入使用者?

如何在任务中使用命令行参数退出应用程序

如何从Windows命令行获取应用程序退出代码?

如何在Windows命令行中通过WSL调用Linux命令?

如何退出JShell并返回到命令行?

如何退出Kotlinc命令行编译器

如何从PostgreSQL命令行实用程序退出:psql

如何在Firefox DevTools中激活多行命令行?

如何在Firefox Quantum中打开命令行?

等效于命令行上的退出

如何在Windows 10中以编程方式或通过命令行确定总线时钟?

如何在Windows中通过命令行创建快捷方式?

如何在Windows 10中通过命令行卸载VHD

如何在python中通过命令行给元组

无法从命令行退出或退出Python脚本

如何在Windows命令行“ cmd”中复制文本?

如何在Windows中从命令行停止服务?

如何在Windows命令行中设置别名?

如何在 Windows 命令行中运行 Clozure CL?

如何在Firefox 50中“退出并保存”?

通过命令行安装“指南针”会收到错误“ extconf失败,退出代码1”

通过命令行创建Assets.car文件以进行应用程序退出

如何在Windows 8中通过命令行交换鼠标主键而无需重新启动?

如何通过命令行在Firefox中添加或删除书签标签?

如何通过命令行在 linux 中打开唯一的、每用户的 firefox 实例?

如何防止异步操作完成之前退出命令行工具