有没有办法从命令行关闭当前处于焦点的程序?
我正在运行一个语音控制程序,该程序在后台执行命令。我知道的唯一方法是使用命令taskkill
,这需要我输入一个特定的进程名称。我希望它终止当前处于焦点的任何进程,因此如果 Firefox 处于焦点,它会终止该进程,如果记事本处于焦点,它会终止该进程。
如果相关的话,我正在使用 win 10。
答案1
不幸的是,命令环境和 GUI 之间没有联系。当你使用taskkill
来终止应用程序时,它作用于过程,而不是窗口。这是一个重要的区别,因为通过终止进程,您是在强制执行此操作;就像它崩溃了一样。在大多数情况下,这可能不是您想要做的。
通常,按Alt+F4将关闭当前焦点窗口(或Esc对话框)。此快捷方式相当于从菜单栏中选择文件 -> 退出或单击标题栏上的关闭按钮。
要从命令提示符执行此操作,您需要一个可以识别活动窗口并向其发送击键的脚本。这可以使用 PowerShell 完成。Windows Script Host(即 VBScript 或 JavaScript)也可以做到这一点。但这需要一些编程技能。AutoHotKey 或 KiXtart 等程序是另一种选择。
基本上,您可以通过语音控制程序从命令行调用脚本。
请注意,应用程序将执行其正常关闭程序(例如提示您保存工作等),因此它不是强制终止taskkill
。
答案2
有没有办法通过 Windows Shell 关闭当前处于焦点的任何程序?
这是不可能的,因为为了在 Windows shell 中键入任何命令,您必须将焦点切换到 shell。
先前获得焦点的程序(窗口)将失去焦点。
据我所知,没有 Windows Shell 命令可以关闭之前重点计划。
答案3
自动识别可以做到。只需几个命令。查找:
$pid=WinGetProcess([ACTIVE])
ProcessClose($pid)