Показать полную графическую версию : [решено] Создать скриншот окна при его появлении
Ждем окна с заголовком "Заголовок". При его появлении делаем его скриншот. Как реализовать?
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <ScreenCapture.au3>
$sTitle = "Заголовок"
$hWin = WinWait (http://www.autoitscript.com/autoit3/docs/functions/WinWait.htm)($sTitle)
WinActivate (http://www.autoitscript.com/autoit3/docs/functions/WinActivate.htm)($sTitle)
WinWaitActive (http://www.autoitscript.com/autoit3/docs/functions/WinWaitActive.htm)($sTitle)
_ScreenCapture_CaptureWnd (http://dundats.mvps.org/help/html/libfunctions/_screencapture_capturewnd.htm)(@DesktopDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopdir) & "\Screen.jpg", $hWin)
Все отлично! Сработало так:
#include <ScreenCapture.au3>
$sTitle = "Заголовок"
$hWin = WinWaitActive($sTitle)
_ScreenCapture_CaptureWnd("c:\Screen.jpg", $hWin)
Но вскрылась проблема. Если окно видимо достаточно долго (около секунды) - все работает, а если оно появляется буквально на немного (доли секунд - появилось и тут же пользователь его закрыл нажатием ESC), то вместо скрина пустой файл-jpg c размером около 600 байт. Есть предположение что не успевает скрипт. Что делать в таком случае? Готов принять варианты не только на AutoIt.
Что делать в таком случае? »
Уменьшить паузу ожидания окна:
Opt (http://www.autoitscript.com/autoit3/docs/functions/Opt.htm)("WinWaitDelay", 0)
(добавить в начало скрипта, перед Win* функциями)
Отлично!
Opt("WinWaitDelay", 70) подошло. При 0 не успевает прорисовываться - скрин бракованный. При 100 я успеваю закрыть окно по ESC. При 70 ЗАРАБОТАЛО:)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.