Содержание материала

 

Code:

keybd_event(VK_SNAPSHOT,1,KEYEVENTF_KEYUP,0);

OpenClipBoard(Form1.handle);

try

SetClipBoardData(CF_DIB,Form1.handle);

vv:=GetClipBoardData(CF_BITMAP);

Image1.Picture.LoadFromClipboardFormat(CF_BITMAP,vv,0);

finally

CloseClipBoard;

EmptyClipBoard;

end;

Автор: Song

 

Еще один способ получения скриншота окна, на чистом WinApi:

Code:

function CreateWindwowBitmap(Wnd: HWND): HBITMAP;

{©Drkb v.3}

 

var

R: TRect;

W, H: Integer;

DC, memDC: HDC;

bm, oldBM: HBITMAP;

begin

GetWindowRect(Wnd, R);

W := R.Right - R.Left;

H := R.Bottom - R.Top;

DC := GetWindowDC(Wnd);

memDC := CreateCompatibleDC(DC);

bm := CreateCompatibleBitmap(DC, W, H);

oldBM := SelectObject(memDC, bm);

BitBlt(memDC, 0,0, w, h, DC, 0,0, SRCCOPY);

SelectObject(memDC, oldBM);

DeleteDC(memDC);

DeleteObject(oldBM);

ReleaseDC(Wnd, DC);

Result := bm;

end;

Автор: Krid

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить