バッチ ファイルをタスク スイッチャーにするにはどうすればよいでしょうか?
Windows XP および Windows 7 のバッチ ファイルの場合...
バッチ ファイルは次のとおりです。
cls
@echo off
echo 1
start /normal c:\windows\system32\taskmgr.exe
echo 2
pause
問題は、フォーカスがタスク マネージャーに留まっていることです。
問題は、フォーカスがバッチ ウィンドウにないことです。
バッチ ファイル ウィンドウにフォーカスを戻すにはどうすればよいでしょうか?
タスクをバッチに切り替えるにはどうすればよいでしょうか?
バッチ ファイル コマンドを使用し、マウスでバッチ ファイル ウィンドウをクリックしたり、キーボードの Alt + Tab キーを押さずに、バッチ ウィンドウにフォーカスを合わせるにはどうすればよいでしょうか。
答え1
プログラムを最小化した状態で起動する
バッチ ファイル (またはコマンド プロンプト) から起動されたプログラムがフォーカスを取得しないようにするには、最小化した状態で起動します。
start /min /normal c:\windows\system32\taskmgr.exe
これによりプログラムは開きますが、ウィンドウが最小化されているため、フォーカスを取得できません。
編集:タスクマネージャの起動は特別なケースです。このプログラムをどのように起動するかに関係なく、いつもシステムフォーカスを取得します。
この場合、できることは何もありません。バッチ ファイルからシステム フォーカスを取り戻すことは不可能なのです。(バッチ スクリプトは、アプリケーション ウィンドウがまったくなかった時代から来ていることを思い出してください。)
答え2
簡単に作成できます固有のタイムスタンプ変数バッチスクリプトでその変数を使用してその値として設定しますタイトルスクリプトの実行ごとに。
その後、アプリをアクティブ化cmdウィンドウの値を渡すタイトルアクティブにするには、値を持つ動的なVBScriptを作成し、そのスクリプトを実行します。スクリプトそれをアクティブにします。
ping -n 06 127.0.0.1 > nul
私は時間が経ってから5秒間の一時停止として使用しましたタスクマネージャー実際のバッチスクリプトが起動される前に起動されます。スクリプト実行。
バッチスクリプト
cls
SET t=%~n0_%date:~10%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%
SET t=%t: =0%
TITLE %t%
@echo off
echo 1
start /normal c:\windows\system32\taskmgr.exe
echo 2
:VBSDynamicBuild
SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set objShell = CreateObject("WScript.Shell") >>"%TempVBSFile%"
ECHO objShell.AppActivate "%t%" >>"%TempVBSFile%"
ping -n 06 127.0.0.1 > nul
CSCRIPT //nologo "%TempVBSFile%"
pause
その他のリソース
答え3
cls
@echo off
echo 1
start /normal c:\windows\system32\taskmgr.exe
REM Wait for Task Manager to open
CALL :Wait 1
REM Alt+Tab back to cmd window
CALL :AltTab
echo 2
pause
GOTO :eof
REM Subroutines:
:wait
@CHOICE /D Y /T:%1% > NUL
EXIT /B
:AltTab
(
ECHO.CreateObject^("WScript.Shell"^).SendKeys "%%{TAB}"
)>%tmp%\tmp.vbs
CALL %tmp%\tmp.vbs
DEL %tmp%\tmp.vbs
EXIT /B
この意志:
- エコー1
- タスクマネージャーを開く
- タスクマネージャーが起動するまで待ちます(1秒)
- VBS スクリプトを作成、実行、削除して、Alt + Tab でコマンド ウィンドウに戻る
- エコー2
- 一時停止
答え4
バッチ ファイルでは、これでうまくいきました。数回テストしたところ、問題あり
ませんでした。コンピューターを再起動しても、テストは問題なく完了しました。
C:\WINDOWS\nircmd.exe sendkeypress rwin+home
NirCmd v2.81 (コンソール版)
http://www.nirsoft.net
上記のバッチ コマンドは、システム フォーカスを
「Windows タスク マネージャー」から変更し
、システム フォーカスを
バッチ ファイル ウィンドウに移動します。
背景: taskmgr.exe
を呼び出すバッチを実行し、 バッチが上記のコマンドを実行し、 Ctrl + C を押すとバッチが停止します。
バッチ ウィンドウをマウスでクリックする必要はありません。
バッチ ウィンドウに Alt キーを押しながら Tab キーを押す必要もありません。
上記の 1 行のバッチ ファイル コマンドは、システム フォーカスを変更します。
欠点: nircmd.exe は、すぐに使用できるソリューションではなく、 サードパーティ ソフトウェアです。
参照
バッチファイルで、それ自身以外のすべてのウィンドウを最小化するか、
--