Добрый день ув. люди

В общем нужно получать скриншоты экрана (вернее областей экрана) постоянно (тобишь в таймере или потоке). Но даже если брать небольшую область размером 100х100 с помощью Вин Апишной функции BitBlt то появляються нормальные тормоза. Как избежать этого? Или лучше воспользоваться DirectDraw? ЧИтал про него, но муть полная. Мало что понял. Подскажите что делать.
п.с. форум читал, но нужного ответа так и не нашел.
п.п.с был бы благодарен примеру получения скрина через directx
в данный момент получаю скрин так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
b:=TBitmap.Create;
b.Width:=105;
b.Height:=105;
MainDC:=GetDC(0);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
b.Free;
ReleaseDC(MainDC,0);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
BitBlt(b.Canvas.Handle,0,0,105,105,MainDC,0,0,SrcCopy);
end;
