我正在从批处理脚本运行一系列应用程序,我想确保打开的程序始终处于焦点.
我们需要确保这一点,因为它是一个实验性设置,我们希望尽量减少麻烦,例如必须将焦点更改为全屏窗口.
我们需要确保这一点,因为它是一个实验性设置,我们希望尽量减少麻烦,例如必须将焦点更改为全屏窗口.
当早期程序退出并且桌面可见并且用户点击桌面上的某个图标时,这个问题已经很少发生,在此之后,正在处理序列中的下一个程序,新窗口不在焦点.
由于我从视图中隐藏了命令窗口,因此问题变得更加频繁.
任何方式强制关注序列中的下一个程序,无论是批处理命令,OS的一些设置(我们在Win XP上)或帮助应用程序都可能有所帮助.
如果你想关注另一个程序,你可以这样做.
- call focus WindowTitle
- exit /b
- :focus
- setlocal EnableDelayedExpansion
- if ["%~1"] equ [""] (
- echo Please give the window's title.
- exit /b
- )
- set pr=%~1
- set pr=!pr:"=!
- echo CreateObject("wscript.shell").appactivate "!pr!" > "%tmp%\focus.vbs"
- call "%tmp%\focus.vbs"
- del "%tmp%\focus.vbs"
- goto :eof
- endlocal
我正在使用vbscript来关注应用程序.
您需要传递窗口的标题,而不是窗口的名称(whatever.bat).
为了确保您获得正确的窗口,您可以设置其标题.
例:
- title WindowTitle