コマンドラインからフォーカスされたプログラムを閉じる

コマンドラインからフォーカスされたプログラムを閉じる

コマンドラインから現在フォーカスされているプログラムを閉じる方法はありますか?

バックグラウンドでコマンドを実行する音声制御プログラムを実行しています。これを行う唯一の方法はtaskkill、特定のプロセス名を入力する必要があるコマンドを使用することです。現在フォーカスされているプロセスをすべて終了したいので、Firefox がフォーカスされている場合はそれを終了し、メモ帳がフォーカスされている場合はそれを終了します。

関係があるかもしれないので、私は Windows 10 を使用しています。

答え1

残念ながら、コマンド環境とGUIの間には連携がありません。taskkillアプリケーションを終了するためにを使用すると、プロセスウィンドウではありません。プロセスを強制終了すると、強制的に終了することになります。つまり、プロセスがクラッシュした場合と同じです。ほとんどの場合、このような操作は望ましくないでしょう。

通常、Alt+ を押すと、F4現在フォーカスされているウィンドウ (またはEscダイアログ ボックス) が閉じます。このショートカットは、メニュー バーから [ファイル] -> [終了] を選択するか、タイトル バーの [閉じる] ボタンをクリックするのと同じです。

コマンド プロンプトからこれを行うには、アクティブ ウィンドウを識別してキーストロークを送信できるスクリプトが必要です。これは PowerShell で実行できます。Windows Script Host (VBScript または JavaScript) でも実行できます。ただし、ある程度のプログラミング スキルが必要です。AutoHotKey や KiXtart などのプログラムも別のオプションです。

基本的には、音声制御プログラムを介してコマンド ラインからスクリプトを呼び出すことになります。

アプリケーションは通常の終了ルーチン (作業内容を保存するように求めるメッセージなど) を実行するため、強制終了にはならないことに注意してくださいtaskkill

答え2

Windows シェル経由で現在フォーカスされているプログラムを閉じる方法はありますか?

これは不可能です。Windows シェルでコマンドを入力するには、フォーカスをシェルに切り替える必要があるからです。

以前フォーカスされていたプログラム (ウィンドウ) はフォーカスを失います。

私の知る限り、Windowsシェルコマンドで閉じることはできません。以前集中したプログラム。

答え3

オートイットできます。いくつかのコマンドを実行するだけです。次を探します:

$pid=WinGetProcess([ACTIVE])
ProcessClose($pid)

関連情報