lamenolamer
Новичок
- Сообщения
- 2
- Репутация
- 0
Код для отлова окон с ошибками, в цикле скринит экран в 2 глобальные переменные и с периодичностью 1 и 2 секунды, в случае появления окна с ошибкой делает ещё один скрин и все три выгружает в файл. При работе ест память, в течении пары тройки минут довольно значительно и продолжает пока не кончается, причем в диспетчере задач увеличение памяти конкретного процесса не отображается, только общий рост выделенной памяти, если завершить процесс скрипта - память высвобождается. Вроде использую глобальные переменные, система Win7.
Подскажите пожалуйста как решить проблему.
Подскажите пожалуйста как решить проблему.
Код:
#include <ScreenCapture.au3>
#include <Date.au3>
Global $hWndConst
Global $lastSec
Global $lastSec1
Global $hBmp0
Global $hBmp1
Global $hBmp
Global $dif
Global $hWnd
$lastSec1 = _NowCalc()
While 1
Example()
sleep(300)
WEnd
Func Example()
$dif = _DateDiff( 's',$lastSec1, _NowCalc())
if $dif = 1 Then
$hBmp0 = _ScreenCapture_Capture("")
ElseIf $dif > 2 Then
$hBmp1 = _ScreenCapture_Capture("")
$lastSec1 = _NowCalc()
EndIf
If WinExists("[TITLE:1С:Предприятие;CLASS:V8NewLocalFrameBaseWnd]", "") Then $hWnd = WinGetHandle("[TITLE:1С:Предприятие;CLASS:V8NewLocalFrameBaseWnd]", "")
If $hWnd = $hWndConst OR $hWnd = 0 Then Return 0
$hWndConst = $hWnd
sleep(300)
ScreenShot()
EndFunc ;==>Example
Func ScreenShot()
$hBmp = _ScreenCapture_Capture("")
_ScreenCapture_SaveImage(@DesktopDir & "\Screens_Error\ERShot_"&@hour&@min&@sec&"_1.jpg", $hBmp1)
_ScreenCapture_SaveImage(@DesktopDir & "\Screens_Error\ERShot_"&@hour&@min&@sec&"_2.jpg", $hBmp0)
_ScreenCapture_SaveImage(@DesktopDir & "\Screens_Error\ERShot_"&@hour&@min&@sec&"_3.jpg", $hBmp)
EndFunc ;==>Example