I think that SendKeys doesn't work for Print Screen. Though the answer to your problem is really quite simple, and if you're still interested in doing this and haven't already found an easy way, this is it.
Before any code, make a picturebox and set it to your current resolution size. Set your scalemode on both the form and the picturebox to pixels. If you plan to use this on different computers, it's better to use code in the Form Load event to ensure the size of the picturebox is the size of the resolution on different computers who may have different resolutions. Turn off it's border, and set it's AutoRedraw property to true.
To set the picturebox to the appropriate size through code, use these calculations:
CODE
picScreenshot.Width = Screen.Width / Screen.TwipsPerPixelX
picScreenshot.Height = Screen.Height / Screen.TwipsPerPixelY
Your two API calls:
CODE
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
The first one will be used to get the screen's device context, which is the space in memory that holds all the pixels for the screen.
The second one will be used to draw that device context onto a picturebox, which you will then save the picture it contains onto your computer.
CODE
Dim lngScreen As Long
lngScreen = GetWindowDC(0)
BitBlt picScreenshot.hDC, 0, 0, Screen.Width / Screen.TwipsPerPixelX, Screen.Height / Screen.TwipsPerPixelY, lngScreen, 0, 0, vbSrcCopy
SavePicture picScreenshot.Image, "C:\Screenshot.bmp"
You declare a variable to hold the handle of the device context. You then use BitBlt to draw onto your Picturebox the picture. The calculation 'Screen.Width / Screen.TwipsPerPixelX' is used to determine the resolution of the computer screen and should be left as is, unless you'll only be using it on your own computer. You use the SavePicture function to save the image to your computer as "Screenshot.bmp".
*EDIT*
Now, say you wanted to save it just to your clipboard instead of making a bitmap file. Just use this code instead of the SavePicture function:
CODE
Clipboard.Clear
Clipboard.SetData picScreenshot.Image
This post has been edited by Zhalix: 14 Aug, 2008 - 10:41 PM