Screen Capture and Save as Bitmap


'api functions from LB Workshop
'Alyce Watson, August 25, 2004
'feel free to use in your own programs
'please do not republish this demo

filedialog "Save Screenshot As","*.bmp",bmpfile$
if bmpfile$="" then end

print "Saving screenshot as ";bmpfile$

bmpfile$=lower$(bmpfile$)
'add bmp extension if necessary:
if right$(bmpfile$,4)<>".bmp" then bmpfile$=bmpfile$+".bmp"


hscreen=GetDC(0)
print "hscreen is ";hscreen

hmem=CreateCompatibleDC(hscreen)
print "hmem is ";hmem

hbitmap=CreateCompatibleBitmap(hscreen,DisplayWidth,DisplayHeight)
oldobject=SelectObject(hmem,hbitmap)
print "hbitmap is ";hbitmap

call BitBlt hmem,0,0,DisplayWidth,DisplayHeight,hscreen,0,0

call ReleaseDC 0,hscreen
call DeleteDC hmem

loadbmp "demo",hbitmap
bmpsave "demo",bmpfile$

call DeleteObject hbitmap
end

Sub BitBlt hDCdest,x,y,w,h,hDCsrc,x2,y2
    CallDLL #gdi32, "BitBlt",hDCdest As uLong,_
    x As Long,y As Long,w As Long,h As Long,_
    hDCsrc As uLong,x2 As Long,y2 As Long,_
    _SRCCOPY As Ulong,RESULT As Boolean
    End Sub

Function SelectObject(hDC,hObject)
    CallDLL #gdi32,"SelectObject",hDC As uLong,_
    hObject As uLong,SelectObject As uLong
    'returns previously selected object
    End Function

Sub DeleteObject hObject
    CallDLL #gdi32,"DeleteObject",hObject As uLong,r As Boolean
    End Sub

Function CreateCompatibleBitmap(hDC,w,h )
    CallDLL #gdi32, "CreateCompatibleBitmap", hDC As uLong,_
    w As Long,h As Long, CreateCompatibleBitmap As uLong
    End Function

Function GetDC(hWnd)
    CallDLL #user32, "GetDC",hWnd As uLong,GetDC As uLong
    End Function

Sub ReleaseDC hWnd, hDC
    CallDLL#user32,"ReleaseDC",hWnd As uLong,_
    hDC As uLong,result As Long
    End Sub

Function CreateCompatibleDC(hDC)
    CallDLL #gdi32,"CreateCompatibleDC",_
    hDC As uLong, CreateCompatibleDC As uLong
    End Function

Sub DeleteDC hDC
    CallDLL #gdi32, "DeleteDC",hDC As uLong, r As Boolean
    End Sub



Home

Source Code

Utilities

Internet

Games

Graphics

Media Demos

Snippets

DLL's

API Resources

Freeware

LB 4 Companion

Mastering LB 3

LB Workshop

Game Workshop

Links

Index