![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() вообщем я скриншотю так
Код:
procedure Screenshot; // скриншот нужного активного окна var rcSrc: Trect; hSrcWnd: HWND; hDC1: HDC; hSrcDC: HDC; hBmp: HBITMAP; tBmp: TBitmap; begin tBmp := TBitmap.Create; hSrcWnd := FindWindow(nil, PChAR(sN)); GetWindowRect(hSrcWnd, rcSrc); hDC1 := GetDc(hSrcWnd); hSrcDC := CreateCompatibleDC(hDC1); hBmp := CreateCompatibleBitmap(hDC1, rcSrc.Right - rcSrc.Left, rcSrc.Bottom - rcSrc.Top); SelectObject(hSrcDC, hBmp); PrintWindow(hSrcWnd, hSrcDC, 0); // BitBlt(hDC1, 0, 0, rcSrc.Right - rcSrc.Left, rcSrc.Bottom - rcSrc.Top, hSrcDC, 0, 0, SRCCOPY); tBmp.Handle := hBmp; tBmp.SaveToFile('c:\000\screenshot.bmp'); DeleteObject(hBmp); DeleteDC(hSrcDC); ReleaseDC(hSrcWnd, hDC1); tBmp.Free; end; Всё норм прикаждом тайминге прога возрастает в размерах на 4-12кб Код:
procedure TForm1.Timer1Timer(Sender: TObject); begin Screenshot; end; многое чё пытался ничё не помогает Мож у вас есть варинат более правильный использывания PrintWindow Последний раз редактировалось Ekklesiast, 01.12.2009 в 10:40. |