Сделать скриншот окна

Доброе время суток. Подскажите пожалуйста, как получить скрин всего окна и сохранить полученную картинку в папку?
6 ответов

Например
'SendKeys.Send("%{PRTSC}") '<Alt>+<PrintScreen> активное окно
SendKeys.Send("^{PRTSC}") '<Ctrl>+<PrintScreen> экран
Dim clipData = Clipboard.GetDataObject()
If clipData.GetDataPresent(DataFormats.Bitmap) Then
    Dim clipBMP As Bitmap = CType(clipData.GetData(DataFormats.Bitmap), Bitmap)
    clipBMP.Save(Path.Combine(Application.StartupPath, "tst1.bmp"))
End If


vova_king, Ну и я подключусь (средствами .NET), можно взять любую область экрана, либо рабочую, либо весь экран, либо только форму, все зависит от "Screen.PrimaryScreen.Bounds"
    Public Function GetScreenShot() As Image
        Dim bounds As Rectangle = Screen.PrimaryScreen.Bounds
        Dim screenshot As New Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb)
        Using graph As Graphics = Graphics.FromImage(screenshot)
 
            graph.CopyFromScreen(0, 0, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy) ' Сфоткать часть экрана, вписаную в Rectangle
 
            Return screenshot
        End Using
    End Function


Ну и я подключусь
Что то я не догоняю. Поставил на форму PictureBox1, поставил кнопку. Вставил Ваш код, в кнопку поставил событие GetScreenShot() но ни каких результатов


vova_king,
picturebox1.image = GetScreenShot()
Я сделал функцию, а что как и где ее применить уже дело каждого.


Я сделал функцию, а что как и где ее применить уже дело каждого.
Спасибо большое. Добавил строчку, для сохранения картинки.
screenshot.Save(Path.Combine(Application.StartupPath, "4.jpg"))
Теперь буду стараться допилить и уменьшить разрешение и перегонять в черно-белый вариант


vova_king, это не сложно. Удачи.