[bcb] screenshot

0

jak w temacie... jak to zrobic w builderze??

0

najszybciej:

keybd_event(VK_SNAPSHOT,0,0,0) - cały desktop

keybd_event(VK_SNAPSHOT,1,0,0) - aktywne okno

VK_SNAPSHOT = 0x2C
wynik jest w schowku :)

0

ok... a idzie to zrobic inaczej?? bo dokladnie chodzi mi o sciagniecie obrazu wlasnego okna aplikacji...

a dokladniej chce sobie zbudowac polprzezroczysty panel bez ort! alphablendingu (program ma pracowac pod 98) i nie moge wykorzystywac schowka... a moze ktos juz kiedys pisal taki komponencik .. wszelkie wskazowki (niekoniecznie od zegarka) mile widziane

0

ja to robię w gdi32 (+ ostatnio gdi+)

<cpp>Sub CreateBitmapFromWindowHandle(hwnd:uint, L:int, T:int, W:int, H:int),int
UINT WindowDC, CompDC, Bitmap
Gdiplus_DeleteCompatibleBitmap()
WindowDC = GetWindowDC(hwnd)
CompatibleBitmap = CreateCompatibleBitmap(WindowDC, W, H)
CompDC = CreateCompatibleDC(WindowDC)
Bitmap = SelectObject(CompDC, CompatibleBitmap)
BitBlt(CompDC, 0, 0, W, H, WindowDC, L, T, SRCCOPY)
SelectObject(CompDC, Bitmap)
DeleteDC(CompDC)
ReleaseDC(hwnd, WindowDC)
'CompatibleBitmap to handle do naszego screena
[...]GdipCreateBitmapFromHBITMAP[...]
Return GDIPLUS.status
EndSub<cpp>
teraz albo wybieram encoder jpg w gdi+ i jednym rozkazem zapisuję screena do pliku, albo w gdi32 zabawa w 3 UDT i zapis do bmp

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.