Здравствуйте Гришин Сергей, Вы писали:
А как ты инициализируешь FBitInfo?
Надо, чтобы глубина цвета _в_точности_ совпадала с установками виндовс. Т.е. если 32 бита — то 32. Например, у меня с 32-на десктопе и с 32 в DIB'е дает примерно 60 ms. (1024x768) (при CreateCompatible Bitmap примерно 59 ms).
А вот 24 бита в DIBe — уже 500 ms.
Хотя, это, конечно, полный бред

Уж 32 бита в 24 отконвертить
_столько_ времени точно не надо
Выводы?
ГС>Доброе время суток.
ГС>Необходимо захватить кусок экрана и взять с него биты, т.е.
ГС> ScreenDC := CreateDC('DISPLAY', nil, nil, nil);
ГС> MemDC := CreateCompatibleDC(ScreenDC);
ГС> Bitmap:= CreateDIBSection(ScreenDC,FBitInfo,DIB_RGB_COLORS, FBuffer,0,0);
ГС> SelectObject(memDC,Bitmap);
ГС> BitBlt(MemDC,0,0,1024,768,ScreenDC,0,0,SRCCOPY);
ГС>Так вот BitBlt в случае 1024х768х24 работает СЕКУНДУ !!!
ГС>Может кто подскажет, где собака зарыта.
ГС>P.S. GetDiBits работает также долго.