Фокус пакетного приложения - PullRequest
8 голосов
/ 25 ноября 2011

Я запускаю последовательность приложений из пакетного сценария и хочу убедиться, что открытая программа всегда будет в фокусе.
Мы должны обеспечить это, потому что это экспериментальная установка, и мы хотим минимизировать такие трудности, как необходимость изменения фокуса на полноэкранное окно.

Эта проблема уже возникала нечасто, когда предыдущая программа закрывалась, и на мгновение рабочий стол становился видимым, и пользователь нажимал на значок на рабочем столе, и сразу после этого обрабатывалась следующая программа в последовательности, новое окно. не в фокусе.

Проблема стала намного более частой, теперь, когда я скрыл окно команд из вида.

Может быть полезен любой способ принудительной фокусировки для следующей программы в последовательности, будь то пакетная команда, некоторые настройки для ОС (мы на Win XP) или вспомогательное приложение.

Ответы [ 2 ]

2 голосов
/ 02 июля 2015

Если вы хотите сфокусировать другую программу, вы можете сделать это.

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 для фокусировки приложения.Вам необходимо передать заголовок окна , , а не * имя окна имя (независимо от того, что .bat).Чтобы убедиться, что вы правильно сфокусировали окно, вы можете установить его заголовок.пример:

title WindowTitle
1 голос
/ 25 ноября 2011

если я правильно понял, start /f yourapp.exe запустит приложение на переднем плане.

...