Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - перевод фокуса с одной проги на другую

Ответить
Настройки темы
CMD/BAT - перевод фокуса с одной проги на другую

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем привет! Прошу помощи.
Сам я не программист, домашний пользователь, но простые батники по нужде делать приходится.

Итак, имею батник. Фокус перевожу утилитой nircmd.exe, но она как-то не четко работает. Не пойму, почему...

Задача батника:

1) стартовать процесс BTV.exe с параметром
2) перевести фокус на ранее запущенное окно "Meedio"
3) через 2 секунды передать процессу BTV.exe другие параметры
4) перевести фокус на ранее запущенное окно "Meedio"

Текст батника ниже. При запуске батника открывается cmd.exe, в нем вижу, что первый пункт выполняется, и далее никакого движения, пока не закрою окно cmd.exe крестиком. Т.е. второй и последующие пункты задачи не выполняются. Чего-то тут не хватает.


Код: Выделить весь код
"C:\Program Files (x86)\BTV\BTV.exe" -tr
nircmd.exe win activate stitle "Meedio"
ping 127.0.0.1 -n 2 >nul
"C:\Program Files (x86)\BTV\BTV.exe" -wu -m:dvbtrd -unmute -vol:170 -ch:1
nircmd.exe win activate stitle "Meedio"
Батник внутри которого только перевод фокуса на окно "Meedio" прекрасно работает, фокус переводит, но как только внутри него нужно еще и процесс запустить/выполнить, то фокус перестает переводиться.
Подскажите, пожалуйста, что нужно дописать, чтоб заработало?

Отправлено: 20:00, 20-12-2020

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата EvgenC:
При запуске батника открывается cmd.exe, в нем вижу, что первый пункт выполняется, и далее никакого движения, пока не закрою окно cmd.exe крестиком. Т.е. второй и последующие пункты задачи не выполняются. Чего-то тут не хватает. »
Что такое BTV.exe? Что за приложение с заголовком «Meedio»?

Если хотите экспериментировать сами, то вот:
Код: Выделить весь код
start "" "%ProgramFiles(x86)%\BTV\BTV.exe" -tr
nircmd.exe win activate stitle "Meedio"
nircmd.exe wait 2000
start "" "%ProgramFiles(x86)%\BTV\BTV.exe" -wu -m:dvbtrd -unmute -vol:170 -ch:1
nircmd.exe win activate stitle "Meedio"
И да: «win activate» — это не «перевод фокуса». Для установки фокуса есть другая команда:
Цитата:
focus: Set the focus to the specified window.

Отправлено: 22:02, 20-12-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, пришлось создать новый аккаунт, т.к. старый почему-то не позволяет отвечать на форуме...

Немного не правильно описал задачу: нужно и фокус перевести на «Meedio» и сделать его поверх всех окон.

что есть что
BTV.exe - программа управления платой ТВ-тюнера. Задача батника запустить эту программу и настроить ее на заданный FM-радиоканал или DVB-радиоканал с заданным уровнем громкости.

«Meedio» - мультимедийная оболочка, из под которой управляется компьютер с помощью ПДУ. Она развернута на весь экран.



С помощью утилиты nircmd.exe было выяснено, что окно этой оболочки имеет заголовок, в котором есть слово «Meedio». На него я и настроил команду "win activate stitle".
И она прекрасно работает, как раз так, как мне надо: если фокус сбивается или что-то вылезло поверх оболочки, то нажимая спец.кнопку на ПДУ, запускается батник с "nircmd.exe win activate stitle "Meedio"" и оболочка опять поддается контролю с ПДУ.

Но когда я эту команду прописал так, как в батнике выше (т.е. после запуска BTV.exe ), то фокус на оболочку не переводится и прога BTV.exe остается в фокусе и поверх окна оболочки.

Команда "focus" - тоже не дает желаемого результата...

Отправлено: 17:39, 23-12-2020 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


evgenc2, тогда вовсе непонятно, зачем Вам промежуточное «win activate stitle "Meedio"»?

Отправлено: 00:02, 24-12-2020 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Промежуточное - это чтобы ничего не маячило поверх оболочки.

И похоже я нашел, почему не работало... Команды nircmd.exe обрабатываются очень быстро. А прога BTV.exe запускается некоторое время. И к моменту запуска BTV.exe фокус остается на ней, а nircmd.exe уже давно отработал. Выход: прописать команду nircmd.exe несколько раз подряд. Десять штук подряд хватило.

Так что можно считать, что проблема решена. Осталось понаблюдать некоторое время.

Отправлено: 20:37, 24-12-2020 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


evgenc2, тогда лучше задействовать AutoIt с его WinWait*.

Отправлено: 21:56, 24-12-2020 | #6


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, Iska, если вылезут проблемы с описанным способом решения задачи, то придется изучать возможности AutoIt.

Отправлено: 23:04, 26-12-2020 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


evgenc2, не «если», а «когда» .
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:29, 26-12-2020 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - перевод фокуса с одной проги на другую

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - [решено] Перевод фокуса на программу, запускаемую из планировщика (notepad++) CyraxZ Microsoft Windows 10 10 24-06-2017 00:08
Разное - Перенос программы с одной машины на другую aarexer Microsoft Windows 2000/XP 6 08-11-2014 18:34
Flash - как перебросить драйвера с одной флешки на другую Nil2011 Накопители (SSD, HDD, USB Flash) 3 18-02-2013 19:55
Переход с одной видеокарты на другую... Punsher Видеокарты 8 30-01-2009 21:24
Перенос контроллера домена с одной машины на другую PsyDuck Microsoft Windows NT/2000/2003 7 30-11-2007 16:12




 
Переход