- Сообщения
- 8,671
- Репутация
- 2,481
Очень странно, помотрите на следующий пример:
Если раскомментировать строчку с ClipPut, то файл со снимком не создаётся, _GDIPlus_BitmapCreateFromHBITMAP просто не возвращает $hImage.
В чём может быть дело?
Подозреваю что оно как то связано с памятью и высвобождением объектов...
Код:
#Include <ClipBoard.au3>
#Include <GDIPlus.au3>
$sFile = @DesktopDir & '\Screenshot.png'
ClipPut("")
Send('{PRINTSCREEN}')
Sleep(200)
_ClipBoard_Open(0)
$hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)
_ClipBoard_Close()
;ClipPut("Data")
If $hBitmap Then
_GDIPlus_Startup()
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
$Result = _GDIPlus_ImageSaveToFile($hImage, $sFile)
_WinAPI_DeleteObject($hBitmap)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
If FileExists($sFile) Then
ShellExecuteWait($sFile)
FileDelete($sFile)
EndIf
EndIf
Если раскомментировать строчку с ClipPut, то файл со снимком не создаётся, _GDIPlus_BitmapCreateFromHBITMAP просто не возвращает $hImage.
В чём может быть дело?
Подозреваю что оно как то связано с памятью и высвобождением объектов...