Here's one method of capturing:
[tt]
Option Explicit
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_MENU = &H12
Private Const VK_SNAPSHOT = &H2C
Private Const KEYEVENTF_KEYUP = &H2
' Captures full screen, unless CurrentWindow is set to True, in which case
' active window is captured. Captured image is returned as StdPicture
Private Function SnapShot(Optional CurrentWindow As Boolean) As StdPicture
' Simulate pressing appropriate keys
If CurrentWindow Then keybd_event VK_MENU, 0, 0, 0
keybd_event VK_SNAPSHOT, 1, 0, 0
' Let the system respond
DoEvents
' Unpress the keys
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
If CurrentWindow Then keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
Set SnapShot = Clipboard.GetData
End Function
[/tt]