2015-09-29 6 views
-2

Как проверить, открыт ли проводник или нет в пакете?Как проверить, открыто ли окно браузера по названию в пакете?

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

Благодаря

Пример:

REM Opening folder with a file selected 
START /W EXPLORER /SELECT,\\10.10.10.10\C$\ThisFolder\FileToHighlight.txt 
REM Unreliably waiting for window to open 
TIMEOUT /T 3 /NOBREAK >NUL 
REM Taking screenshot of window with a third-party app 
START .\Bin\screenshot-cmd.exe -wt "ThisFolder" -o .\Screenshots\%var%.png 
+0

посмотреть на 'начала/wait' http://ss64.com/nt/start.html –

+0

Похоже, он ждет, пока приложение не будет завершено? Что плохо для меня, поскольку я закрываю окно только после того, как снимок сделан – ellm62

+2

Можете ли вы разместить свой код? – Hackoo

ответ

1

При условии, что не может быть никакого другого окна с тем же названием, как открытой папки вы можете использовать tasklist:

@echo off 
rem DON'T ADD A TRAILING \ IN THE PATH! 
set folder=d:\path\foldername 
explorer "%folder%" 
:wait 
    timeout 1 >nul 
    for %%z in ("%folder%") do (
     tasklist /fi "windowtitle eq %%~nxz" /fi "imagename eq explorer.exe"^
     | find "explorer.exe" >nul 
     if errorlevel 1 goto wait 
    ) 
pause 
+0

Спасибо за ответ. Оговорка заключается в том, что мне нужно иметь файл, выбранный для снимка экрана, поэтому я использую EXPLORER/SELECT,% folder% % папка% что-то вроде "D: \ Folder \ FileWithInFolder.txt" Может ли это быть заставляя ваш цикл работать не для меня? Это не доходит до паузы. – ellm62

+0

Конечно, поскольку код извлекает имя FOLDER, а не имя файла. См. [Получить имя родительского каталога для определенного файла с использованием сценариев DOS Batch] (http://stackoverflow.com/q/2396003) – wOxxOm