Простой способ получения скриншота
Способ основан на симуляции нажатия клавиши Print Screen (Const vbKeySnapshot = 44 (&H2C)), - для копирования изображения экрана, и методе Clipboard.GetData(vbCFBitmap), - для дальнейшего получения изображения в Picture (Picture Box).
'Объявляем в General Form1: Private Declare Sub keybd_event Lib "user32" _ (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) Dim A As Integer 'в Properties Form1 устанавливаем BorderStyle в 0-None, для того, чтобы в 'момент получения экрана, детали формы не попали в "кадр" Private Sub Form_Load() 'делаем форму невидимой, но при этом оставляем активными все 'компоненты Form1.Height = 0 Timer1.Interval = 1 'очищаем Clipboard Clipboard.Clear 'копируем изображение экрана keybd_event vbKeySnapshot, 1, 0&, 0& End Sub Private Sub Timer1_Timer() A = A + 1 If A = 2 Then 'вклеиваем изображение в картинку Picture1.Picture = Clipboard.GetData(vbCFBitmap) 'задаём размеры формы и картинки Form1.Width = Screen.Width * 0.8 Form1.Height = Screen.Height * 0.8 Form1.Left = (Screen.Width - Width) / 2 Form1.Top = (Screen.Height - Height) / 2 Picture1.Height = Form1.ScaleHeight * 1 Picture1.Width = Form1.ScaleWidth * 1 Picture1.Left = (Form1.Width - Picture1.Width) / 2 Picture1.Top = (Form1.Height - Picture1.Height) / 2 End If If A = 2 Then 'очищаем Clipboard Clipboard.Clear 'выключаем Timer1 Timer1.Enabled = False End If End Sub 'для выхода из программы Private Sub Picture1_Click() End End Sub