Можно вот так:
Declare Function GetDesktopWindow Lib "user32.dll" () As Long Declare Function GetDC Lib "user32.dll" (ByVal hWnd As Long) As Long Declare Function ReleaseDC Lib "user32.dll" _ (ByVal hWnd As Long, ByVal hDC As Long) As Long Declare Function BitBlt Lib "GDI32.dll" _ (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 SUB SaveScreen ScaleMode = vbPixels Move 0, 0, Screen.Width + 1, Screen.Height + 1 dwRop = &HCC0020 hwndSrc = GetDesktopWindow() hSrcDC = GetDC(hwndSrc) Call BitBlt(hDC, 0, 0, ScaleWidth, ScaleHeight, hSrcDC, 0, 0, dwRop) Call ReleaseDC(hwndSrc, hSrcDC) SavePicture frmSCREEN.Image, scrfile$ END SUB
Нет ничего невозможного, но возможное тожэ огграничена и при этом нестоит забывать что свои вазможнасти человек ограничивает сам!