Что нового

Как снять скриншот с рабочей области paint - полностью

Сообщения
34
Репутация
0
Здравствуйте, уважаемые специалисты по autoit.
Как снять скриншот с рабочей области программы Paint
Эта рабочая область большая и не влезает на экран, поэтому ее приходится прокручивать бегунком.

Имеющийся макрос AutoIt - делает скриншот рабочей области окна "Диспетчера задач". А вот с пайнтом подобный способ почему-то уже не работает.
Скажите - как снять скриншот с рабочей области программы Paint - полностью ?
Код:
#AutoIt3Wrapper_UseX64=Y
#RequireAdmin

#include <GuiHeader.au3>
#include <GuiListView.au3>
#include <ScreenCapture.au3>

$hWnd = WinActivate("Диспетчер задач Windows")
If Not $hWnd Then Exit MsgBox(0, "", "Окно не найдено")
$hHead = ControlGetHandle($hWnd, "", "SysHeader321")
$hList = ControlGetHandle($hWnd, "", "SysListView321")
If Not ControlCommand($hWnd, "", $hList, "IsVisible") Then Exit MsgBox(0, "", "Список не виден")
Sleep(555)

$aPosHead = _GUICtrlHeader_GetItemRect($hHead, 0)
$iHead = $aPosHead[3] - $aPosHead[1]
$aPosList = _GUICtrlListView_GetItemRect($hList, 0)
$iItem = $aPosList[3] - $aPosList[1]
$iCount = _GUICtrlListView_GetItemCount($hList)

_GDIPlus_Startup()
$hImage = _GDIPlus_BitmapCreateFromScan0($aPosList[2] - $aPosList[0], $iHead + $iItem * $iCount)
$hGraph = _GDIPlus_ImageGetGraphicsContext($hImage)

$hBmp = _ScreenCapture_CaptureWnd("", $hList, $aPosHead[0], $aPosHead[1], $aPosList[2], $aPosHead[3], False)
$hImg = _GDIPlus_BitmapCreateFromHBITMAP($hBmp)
_GDIPlus_GraphicsDrawImage($hGraph, $hImg, 0, 0)
_GDIPlus_BitmapDispose($hImg)
_WinAPI_DeleteObject($hBmp)

For $i = 0 To $iCount - 1
  _GUICtrlListView_EnsureVisible($hList, $i)
  $aPos = _GUICtrlListView_GetItemRect($hList, $i)
  $hBmp = _ScreenCapture_CaptureWnd("", $hList, $aPos[0], $aPos[1], $aPos[2], $aPos[3], False)
  $hImg = _GDIPlus_BitmapCreateFromHBITMAP($hBmp)
  _GDIPlus_GraphicsDrawImage($hGraph, $hImg, 0, $iHead + $i * $iItem)
  _GDIPlus_BitmapDispose($hImg)
  _WinAPI_DeleteObject($hBmp)
Next

_GDIPlus_ImageSaveToFile($hImage, "ListView.png")
_GDIPlus_ImageDispose($hImage)
_GDIPlus_GraphicsDispose($hGraph)
_GDIPlus_Shutdown()
 

Вложения

  • 1.jpg
    1.jpg
    71.9 КБ · Просмотры: 12
Верх