15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как получить изображение экрана

Функция, которая реализует эту возможность - GetDesktopWindow. Полный код выглядит так.
Это поместить в область деклараций модуля

   Public Declare Function GetDesktopWindow Lib "user32" () As Long
   Public Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
   Public Declare Function BitBlt Lib "gdi32" _
          (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, _
          ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, _
          ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
   Public Const SRCCOPY = &HCC0020

Код, копирующий изображение экрана в окно. Размещается в форме. Не забудьте свойство формы AutoRedraw установить в True.

      Dim hDesk, hDeskDC
      hDesk = GetDesktopWindow()
      hDeskDC = GetDC(hDesk)
      BitBlt Me.hDC, 0, 0, Width, Height, hDeskDC, 0, 0, SRCCOPY

Если необходимо изображение поместить в Picture, вместо Me.hDC укажите Picture1.hDC.