Posted: Sun Dec 22, 2002 10:01 pm
Restored from previous forum. Originally posted by dmoc.
I'm tinkering with Franco's code snippet to capture the desktop. After many trials I cannot get the right syntax for reading data from the bitmap structure returned by "GetCurrentObject_". I have tried many different variations but trying to Peek() raises an illegal op error. Help! Please.
Procedure CaptureDesktop()
DC.l = GetDC_(0)
MDC.l = CreateCompatibleDC_(DC)
Image.l = CreateCompatibleBitmap_(DC,GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN))
SelectObject_(MDC,Image)
BitBlt_(MDC, 0, 0, GetSystemMetrics_(#SM_CXSCREEN), GetSystemMetrics_(#SM_CYSCREEN),DC, 0, 0, $0CC0020)
Bitmap = GetCurrentObject_(MDC, 7)
MessageRequester("Width",Str(PeekL(Bitmap+4)),#MB_OK)
; OpenClipboard_(0)
; EmptyClipboard_()
; SetClipboardData_(2,Image)
; CloseClipboard_()
DeleteObject_(Image)
DeleteDC_(MDC)
ReleaseDC_(0,DC)
EndProcedure
CaptureDesktop()
End
I'm tinkering with Franco's code snippet to capture the desktop. After many trials I cannot get the right syntax for reading data from the bitmap structure returned by "GetCurrentObject_". I have tried many different variations but trying to Peek() raises an illegal op error. Help! Please.
Procedure CaptureDesktop()
DC.l = GetDC_(0)
MDC.l = CreateCompatibleDC_(DC)
Image.l = CreateCompatibleBitmap_(DC,GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN))
SelectObject_(MDC,Image)
BitBlt_(MDC, 0, 0, GetSystemMetrics_(#SM_CXSCREEN), GetSystemMetrics_(#SM_CYSCREEN),DC, 0, 0, $0CC0020)
Bitmap = GetCurrentObject_(MDC, 7)
MessageRequester("Width",Str(PeekL(Bitmap+4)),#MB_OK)
; OpenClipboard_(0)
; EmptyClipboard_()
; SetClipboardData_(2,Image)
; CloseClipboard_()
DeleteObject_(Image)
DeleteDC_(MDC)
ReleaseDC_(0,DC)
EndProcedure
CaptureDesktop()
End