Non volendo usare le API, si potrebbe:
codice:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide()
System.Threading.Thread.Sleep(250)
Dim myEncoder As New EncoderParameters(1)
myEncoder.Param(0) = New EncoderParameter(Encoder.Quality, 100)
Dim bmp As Bitmap = New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
Dim g As Graphics = Graphics.FromImage(bmp)
g.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, _
Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy)
g.Dispose()
bmp.Save("C:\screen.jpg", MyCodec, myEncoder)
Me.Show()
End Sub
Private Function MyCodec() As ImageCodecInfo
Dim codecs As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders
For Each codec As ImageCodecInfo In codecs
If (codec.MimeType = "image/jpeg") Then
Return codec
End If
Next
Return Nothing
End Function