有沒有辦法從命令列關閉目前焦點的程式?
我正在運行一個在後台執行命令的語音控製程式。我知道的唯一方法是使用命令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)