DyadyaGenya
Знающий
- Сообщения
- 300
- Репутация
- 10
Доброго времени суток. Заметил одну проблему. Функция вроде делает скрин, но не всегда показывает последний скрин. Иногда показывает тот, который был перед этим. Очистить буфер не получается. Оставил закоментированные строки чтобы показать, как пробовал чистить. Может не там ставил очистку и не так. В чем может быть проблема со показом последнего скрина и чисткой буфера?
Пы.Сы. Пробовал делать зависимость от процентов на (99 или 100). Так скрин не всегда делается и тогда вызов картинки не происходит. Значит скрин делается, только непонятно куда.
Код:
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#Include <ScreenCapture.au3>
#include <Clipboard.au3>
Global $Counter = IniRead("Setting.ini","Statistika","Count","0")
$Shell = ObjCreate('Shell.Application')
$Shell.NameSpace('куда').CopyHere('откуда', 16)
_SCREEN()
Func _SCREEN()
If Not WinExists("[class:OperationStatusWindow]") Then
MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
Exit
Else
$hWnd = WinGetHandle("[CLASS:OperationStatusWindow]")
Send("!{PRINTSCREEN}")
_ClipBoard_Open(0)
$hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)
;_ClipBoard_Empty()
;ClipPut("")
;_ClipBoard_SetDataEx("")
_ClipBoard_Close()
_GDIPlus_Startup()
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
_GDIPlus_ImageSaveToFile($hImage, @ScriptDir & "\screen" & $Counter & ".bmp")
_GDIPlus_BitmapDispose($hImage)
_GDIPlus_Shutdown()
Dim $Screen = @ScriptDir & "\screen" & $Counter & ".bmp"
ShellExecute($Screen)
EndIf
EndFunc ;==>_SCREEN
Пы.Сы. Пробовал делать зависимость от процентов на (99 или 100). Так скрин не всегда делается и тогда вызов картинки не происходит. Значит скрин делается, только непонятно куда.
Последнее редактирование: