Простой способ получения скриншота
Способ основан на симуляции нажатия клавиши 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
