1

Тема: CMD/BAT: Как ожидать деактивации заданного окна

Господа подскажите как в батнике ожидать деактивации заданного по заголовку окна?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

2

Re: CMD/BAT: Как ожидать деактивации заданного окна

без опции /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
Я конечно далек от мысли... (с)

3 (изменено: serzh82saratov, 2012-10-15 16:38:56)

Re: CMD/BAT: Как ожидать деактивации заданного окна

Составил тестовый бат такого содержания

@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?

Спасибо.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: CMD/BAT: Как ожидать деактивации заданного окна

пример приведен не на деактивацию, а на исчезновение окна с заданным заголовком

у Васс ошибка - то что Вы сохранили все в блокноте или еще каком редакторе в кодировке утф8

редактируйте пакетный файл в WordPad и сохраняйте как "Текст MS-DOS"

Я конечно далек от мысли... (с)

5

Re: CMD/BAT: Как ожидать деактивации заданного окна

у Васс ошибка - то что Вы сохранили все в блокноте или еще каком редакторе в кодировке утф8

редактируйте пакетный файл в WordPad и сохраняйте как "Текст MS-DOS"

теперь окно консоли появляется на "милисекунду" но файл "D:\Programms\=Other\GPU-Z.0.5.9.exe" не запускается ни при наличии окна Безымянный — Блокнот, ни при его отсутствии.

пример приведен не на деактивацию, а на исчезновение окна с заданным заголовком

А возможно ли на деактивацию?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: CMD/BAT: Как ожидать деактивации заданного окна

редактируйте пакетный файл в WordPad и сохраняйте как "Текст MS-DOS"

Странно, все баты редактировал всегда в блокноте, и не было проблем.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7 (изменено: smaharbA, 2012-10-15 17:19:35)

Re: CMD/BAT: Как ожидать деактивации заданного окна

@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

Я конечно далек от мысли... (с)

8

Re: CMD/BAT: Как ожидать деактивации заданного окна

Видимо чтобы это заработало, нужно сначало изучить весь язык, и написать это самому...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: CMD/BAT: Как ожидать деактивации заданного окна

вот скачайте пакетник

в вордпаде русиш киргизишем стал.

Скажите куда надо втавлять код который будет выполнятся при деактивации окна (так понял последний вариант кода для деактивации окна.?)

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

10 (изменено: serzh82saratov, 2012-10-16 12:08:56)

Re: CMD/BAT: Как ожидать деактивации заданного окна

Что то заработало, но ощущение что оно просто ждёт закрытия процесса notepad.exe, и окно консоли ждёт тоже

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: CMD/BAT: Как ожидать деактивации заданного окна

оно ждет закрытие по заголовку окна
если нужно по деактивации, то либо какой нибудь аутоит, нкрон или смешанный скрипт с вызовом динавраппер

Я конечно далек от мысли... (с)

12

Re: CMD/BAT: Как ожидать деактивации заданного окна

нкрон или смешанный скрипт с вызовом динавраппер

аутоит не подойдёт в моём случае http://forum.script-coding.com/viewtopic.php?id=7697. Про нкрон и скрипт с вызовом динавраппер можете чуть подробнее, неслышал про них.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13 (изменено: Rom5, 2012-10-16 14:10:01)

Re: CMD/BAT: Как ожидать деактивации заданного окна

serzh82saratov пишет:

нкрон или смешанный скрипт с вызовом динавраппер

аутоит не подойдёт в моём случае 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.
WBR. Roman

14 (изменено: Rom5, 2012-10-16 14:13:45)

Re: CMD/BAT: Как ожидать деактивации заданного окна

serzh82saratov пишет:

аутоит не подойдёт в моём случае 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.

А если имя окна получать параметром, вообше универсальная утилитка получится.

WBR. Roman

15

Re: CMD/BAT: Как ожидать деактивации заданного окна

Rom5
Тут WinActivate совсем ненужно...
И AutoIt тоже банится панкбастером.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

16 (изменено: smaharbA, 2012-10-16 15:04:09)

Re: CMD/BAT: Как ожидать деактивации заданного окна

http://www.n-d.ru/pub/ddd.bat

Я конечно далек от мысли... (с)

17

Re: CMD/BAT: Как ожидать деактивации заданного окна

smaharbA пишет:

http://www.n-d.ru/pub/ddd.bat

Спасибо за желание помочь. Но слишком сложный для меня пример.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

18

Re: CMD/BAT: Как ожидать деактивации заданного окна

запустите

Я конечно далек от мысли... (с)

19

Re: CMD/BAT: Как ожидать деактивации заданного окна

мелькнула консоль, запустился кальк и блокнот, и ...?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

20

Re: CMD/BAT: Как ожидать деактивации заданного окна

калк запускается после деактивации блокнота

Я конечно далек от мысли... (с)

21 (изменено: serzh82saratov, 2012-10-16 15:25:55)

Re: CMD/BAT: Как ожидать деактивации заданного окна

сначала блокнот потом сразу калк.

Закрываю калк деактивирую блокнот, и ничего (ну это потому что не в цикле видимо, оно мне и не надо)
Видимо после запуска блокнота появляется окно консоли и потому запускается калк. Как лечить.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

22

Re: CMD/BAT: Как ожидать деактивации заданного окна

Попробовал запустить бат с другого скрипта. Консоль вылезла и не пропадает, запустился блокнот, калка теперь нет совсем. У меня 64 бит семёрка, это может играть роль?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

23 (изменено: smaharbA, 2012-10-16 15:32:01)

Re: CMD/BAT: Как ожидать деактивации заданного окна

перезалил с задержками запусков
может быть и от х64

Я конечно далек от мысли... (с)

24 (изменено: serzh82saratov, 2012-10-16 15:39:58)

Re: CMD/BAT: Как ожидать деактивации заданного окна

Теперь работает, но если "кликать мышью" батник. Если его просто запустить из другого скрипта то вылазит блокнот и всё... Чудеса какие-то

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

25

Re: CMD/BAT: Как ожидать деактивации заданного окна

да var x=new ActiveXObject("DynamicWrapper"); на х64 валится с ошибкой, смотреть нужно с регистрацией, что да как

Я конечно далек от мысли... (с)

26

Re: CMD/BAT: Как ожидать деактивации заданного окна

smaharbA пишет:

да var x=new ActiveXObject("DynamicWrapper"); на х64 валится с ошибкой, смотреть нужно с регистрацией, что да как

Непонятна разница между запуска с мышки, и запуском из скрипта.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

27

Re: CMD/BAT: Как ожидать деактивации заданного окна

работает, проверено тут
http://www.n-d.ru/pub/ddd6432.bat

Я конечно далек от мысли... (с)

28

Re: CMD/BAT: Как ожидать деактивации заданного окна

smaharbA пишет:

работает

findstr "@@@@" "%~0" ^| findstr /v "findstr"

можно сократить - 2 варианта

findstr /b "@@@@" "%~0"
findstr "^@@@@" "%~0"
( 2 * b ) || ! ( 2 * b )

29 (изменено: serzh82saratov, 2012-10-17 01:45:26)

Re: CMD/BAT: Как ожидать деактивации заданного окна

smaharbA пишет:

работает, проверено тут
http://www.n-d.ru/pub/ddd6432.bat

Спасибо большое, работает!
Правда "ни строчки" не понятно дилетанту

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

30

Re: CMD/BAT: Как ожидать деактивации заданного окна

Да и вот ещё проблема с русскими путями выплыла, подскажите как вылечить?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

31

Re: CMD/BAT: Как ожидать деактивации заданного окна

serzh82saratov пишет:

Да и вот ещё проблема с русскими путями выплыла, подскажите как вылечить?

chcp 1251