![]() |
перевод фокуса с одной проги на другую
Всем привет! Прошу помощи.
Сам я не программист, домашний пользователь, но простые батники по нужде делать приходится. Итак, имею батник. Фокус перевожу утилитой 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 Подскажите, пожалуйста, что нужно дописать, чтоб заработало? |
Цитата:
Если хотите экспериментировать сами, то вот: Код:
start "" "%ProgramFiles(x86)%\BTV\BTV.exe" -tr Цитата:
|
Iska, пришлось создать новый аккаунт, т.к. старый почему-то не позволяет отвечать на форуме...
Немного не правильно описал задачу: нужно и фокус перевести на «Meedio» и сделать его поверх всех окон. что есть что
BTV.exe - программа управления платой ТВ-тюнера. Задача батника запустить эту программу и настроить ее на заданный FM-радиоканал или DVB-радиоканал с заданным уровнем громкости.
«Meedio» - мультимедийная оболочка, из под которой управляется компьютер с помощью ПДУ. Она развернута на весь экран. С помощью утилиты nircmd.exe было выяснено, что окно этой оболочки имеет заголовок, в котором есть слово «Meedio». На него я и настроил команду "win activate stitle". И она прекрасно работает, как раз так, как мне надо: если фокус сбивается или что-то вылезло поверх оболочки, то нажимая спец.кнопку на ПДУ, запускается батник с "nircmd.exe win activate stitle "Meedio"" и оболочка опять поддается контролю с ПДУ. Но когда я эту команду прописал так, как в батнике выше (т.е. после запуска BTV.exe ), то фокус на оболочку не переводится и прога BTV.exe остается в фокусе и поверх окна оболочки. Команда "focus" - тоже не дает желаемого результата... |
evgenc2, тогда вовсе непонятно, зачем Вам промежуточное «win activate stitle "Meedio"»?
|
Промежуточное - это чтобы ничего не маячило поверх оболочки.
И похоже я нашел, почему не работало... Команды nircmd.exe обрабатываются очень быстро. А прога BTV.exe запускается некоторое время. И к моменту запуска BTV.exe фокус остается на ней, а nircmd.exe уже давно отработал. Выход: прописать команду nircmd.exe несколько раз подряд. Десять штук подряд хватило. Так что можно считать, что проблема решена. Осталось понаблюдать некоторое время. |
evgenc2, тогда лучше задействовать AutoIt с его WinWait*.
|
Спасибо, Iska, если вылезут проблемы с описанным способом решения задачи, то придется изучать возможности AutoIt.
|
evgenc2, не «если», а «когда» ;).
|
Время: 19:16. |
Время: 19:16.
© OSzone.net 2001-