This is a multi-purpose selection of screen capturing routines.
You can use it to capture a passed in VB Form or any window with a specified HWND. For example, you could use the GetDeskTopWindow to get the Desk Top HWND and then capture the whole desktop to a VB Picture Object.

Perhaps the best thing about these routines are that they return a standard VB Picture Object. That means that you can incorporate screen capturing routines for many different purposes (and save them to disk with the SavePicture vb statement) – for instance, if your program raises an error, you can capture the screen in your error handling routine and then save it to disk / database / whatever ! – You could even email the saved picture straight to the relevant developer.
Example usage :
'
set Picture1.Picture = CaptureForm(me)
PrintPicture Printer, Picture2.Picture
Printer.EndDoc
'
' or :
'
Dim oPic as StdPicture
set oPic = CaptureWindow(0, 0, 0, _
Screen.Width / Screen.TwipsPerPixelX, _
Screen.Height / Screen.TwipsPerPixelY)
'
SavePicture oPic.Picture, "c:\output.bmp"
'
Download Zipped Project and ScreenCapture.BAS module (5k)