Тема: CMD/BAT: Как ожидать деактивации заданного окна
Господа подскажите как в батнике ожидать деактивации заданного по заголовку окна?
Win10x64 AhkSpy, Hotkey, ClockGui
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Господа подскажите как в батнике ожидать деактивации заданного по заголовку окна?
без опции /fi "windowtitle... потому что есть реализации тасклиста работающие с локалью и юникодом
@echo off
set title=Mozilla Firefox
:x
tasklist.exe /v /fo csv /nh | find /i "%title%" > nul 2>&1 && goto x
echo %title% Все
pause
exit /bСоставил тестовый бат такого содержания
@echo off
set title=Безымянный — Блокнот
:x
tasklist.exe /v /fo csv /nh | find /i "%title%" > nul 2>&1 && goto x
echo %title%
pause Все
"D:\Programms\=Other\GPU-Z.0.5.9.exe"
exit /bв консоли вижу это
D:\AutoIt>я╗┐@echo off
"я╗┐@echo" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
D:\AutoIt>set title=╨С╨╡╨╖╤Л╨╝╤П╨╜╨╜╤Л╨╣ тАФ ╨С╨╗╨╛╨║╨╜╨╛╤В
D:\AutoIt>tasklist.exe /v /fo csv /nh | find /i "╨С╨╡╨╖╤Л╨╝╤П╨╜╨╜╤Л╨╣ тАФ ╨С╨╗
╨╛╨║╨╜╨╛╤В" 1>nul 2>&1 && goto x
D:\AutoIt>echo ╨С╨╡╨╖╤Л╨╝╤П╨╜╨╜╤Л╨╣ тАФ ╨С╨╗╨╛╨║╨╜╨╛╤В ╨Т╤Б╨╡
╨С╨╡╨╖╤Л╨╝╤П╨╜╨╜╤Л╨╣ тАФ ╨С╨╗╨╛╨║╨╜╨╛╤В ╨Т╤Б╨╡
D:\AutoIt>pause
Для продолжения нажмите любую клавишу . . .строка "D:\Programms\=Other\GPU-Z.0.5.9.exe" это то что хочется выполнить если неактивно окно Безымянный — Блокнот (Notepad тоже пробовал). Я, как вы поняли, в бате полный ноль, если нетрудно вкратце напишите где я туплю.
Ещё интересно почему появляется окно консоли ведь вроде бы @echo off должно его скрывать. И что значит /b после exit, и Все после pause?
Спасибо.
пример приведен не на деактивацию, а на исчезновение окна с заданным заголовком
у Васс ошибка - то что Вы сохранили все в блокноте или еще каком редакторе в кодировке утф8
редактируйте пакетный файл в WordPad и сохраняйте как "Текст MS-DOS"
у Васс ошибка - то что Вы сохранили все в блокноте или еще каком редакторе в кодировке утф8
редактируйте пакетный файл в WordPad и сохраняйте как "Текст MS-DOS"теперь окно консоли появляется на "милисекунду"
но файл "D:\Programms\=Other\GPU-Z.0.5.9.exe" не запускается ни при наличии окна Безымянный — Блокнот, ни при его отсутствии.
пример приведен не на деактивацию, а на исчезновение окна с заданным заголовком
А возможно ли на деактивацию?
редактируйте пакетный файл в WordPad и сохраняйте как "Текст MS-DOS"
Странно, все баты редактировал всегда в блокноте, и не было проблем.
@echo off
set title=Mozilla Firefox
start "" notepad.exe
ping 127.0.0.1 > nul 2>&1
for /f "tokens=9* delims=," %%x in ('tasklist /v /fo csv /nh /fi "imagename eq notepad.exe" 2^> nul ^|^| tasklist /v /fo csv /nh /fi "имя образа eq notepad.exe" 2^> nul') do (
set title=%%~x
)
rem set title=Безымянный - Блокнот
:x
tasklist.exe /v /fo csv /nh | find /i "%title%" > nul 2>&1 && goto x
echo %title% Все
pause
exit /bвот скачайте пакетник
http://www.n-d.ru/pub/notwindow.bat
Видимо чтобы это заработало, нужно сначало изучить весь язык, и написать это самому...
вот скачайте пакетник
в вордпаде русиш киргизишем стал.
Скажите куда надо втавлять код который будет выполнятся при деактивации окна (так понял последний вариант кода для деактивации окна.?)
Что то заработало, но ощущение что оно просто ждёт закрытия процесса notepad.exe, и окно консоли ждёт тоже ![]()
оно ждет закрытие по заголовку окна
если нужно по деактивации, то либо какой нибудь аутоит, нкрон или смешанный скрипт с вызовом динавраппер
нкрон или смешанный скрипт с вызовом динавраппер
аутоит не подойдёт в моём случае http://forum.script-coding.com/viewtopic.php?id=7697. Про нкрон и скрипт с вызовом динавраппер можете чуть подробнее, неслышал про них.
нкрон или смешанный скрипт с вызовом динавраппер
аутоит не подойдёт в моём случае http://forum.script-coding.com/viewtopic.php?id=7697......
Указанная ветка ведь не об AutoIt-е (аутоитовских тем на форуме уже нет) ...
Про упоминаемый аутохоткей я просто не в курсе, но скрипт на аутоите - это по идее несколько строчек: сначала команда активации интересуемого окна, потом команда ожидания "дезактивации":
WinActivate(...) ; Activates (gives focus to) a window.
WinWaitNotActive(...) ; Pauses execution of the script until the requested window is not active.аутоит не подойдёт в моём случае http://forum.script-coding.com/viewtopic.php?id=7697......
Указанная ветка ведь не об AutoIt-е (аутоитовских тем на форуме уже нет) ...
Про упоминаемый аутохоткей я просто не в курсе, но скрипт на аутоите - это по идее несколько строчек: сначала команда активации интересуемого окна, потом команда ожидания "дезактивации":
WinActivate(...) ; Activates (gives focus to) a window.
WinWaitNotActive(...) ; Pauses execution of the script until the requested window is not active.А если имя окна получать параметром, вообше универсальная утилитка получится.
Rom5
Тут WinActivate совсем ненужно...
И AutoIt тоже банится панкбастером.
Спасибо за желание помочь. Но слишком сложный для меня пример.
запустите
мелькнула консоль, запустился кальк и блокнот, и ...?
калк запускается после деактивации блокнота
сначала блокнот потом сразу калк.
Закрываю калк деактивирую блокнот, и ничего (ну это потому что не в цикле видимо, оно мне и не надо)
Видимо после запуска блокнота появляется окно консоли и потому запускается калк. Как лечить.
Попробовал запустить бат с другого скрипта. Консоль вылезла и не пропадает, запустился блокнот, калка теперь нет совсем. У меня 64 бит семёрка, это может играть роль?
перезалил с задержками запусков
может быть и от х64
Теперь работает, но если "кликать мышью" батник. Если его просто запустить из другого скрипта то вылазит блокнот и всё... Чудеса какие-то
да var x=new ActiveXObject("DynamicWrapper"); на х64 валится с ошибкой, смотреть нужно с регистрацией, что да как
да var x=new ActiveXObject("DynamicWrapper"); на х64 валится с ошибкой, смотреть нужно с регистрацией, что да как
Непонятна разница между запуска с мышки, и запуском из скрипта.
работает, проверено тут
http://www.n-d.ru/pub/ddd6432.bat
работает
findstr "@@@@" "%~0" ^| findstr /v "findstr"можно сократить - 2 варианта
findstr /b "@@@@" "%~0"findstr "^@@@@" "%~0"работает, проверено тут
http://www.n-d.ru/pub/ddd6432.bat
Спасибо большое, работает!
Правда "ни строчки" не понятно дилетанту ![]()
Да и вот ещё проблема с русскими путями выплыла, подскажите как вылечить?
Да и вот ещё проблема с русскими путями выплыла, подскажите как вылечить?
chcp 1251
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться