Fehler ArgumentException ungültiger parameter

Hallo,

ich habe ein Programm gebaut, welches automatisch, ca. alle 10 Sek. einen Screenshot vom Aktuellen desktop machen soll und den in einer datei speichern soll, funktioniert auch soweit aber nachdem ca. 70 mal das Bild „aktualisiert“ wurde, sagt er mir immer in verschiedenen Zeilen etwas von „ArgumentException“ ungültiger Parameter…
Hilfe was kann ich noch tun bzw. den Code so verändern das es funktioniert??

Hier der Code:

Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
PictureBox1.Image = Screenshot()
Dim bmp As Bitmap = New Bitmap(PictureBox1.Width, PictureBox1.Height)
PictureBox1.DrawToBitmap(bmp, New Rectangle(0, 0, PictureBox1.Width, PictureBox1.Height))

bmp.Save(„C:\Users\Public\Documents\main.jpeg“, System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub
Public Function Screenshot() As Bitmap
Dim bild As New Bitmap(1920, 1080)
Dim grafik As Graphics = Graphics.FromImage(bild)
grafik.CopyFromScreen(0, 0, 0, 0, bild.Size)
grafik.Dispose()

Return bild

End Function

Hallo!
Nachdem es sich ja offenbar um VB.NET handelt, wäre das .NET Brett angebrachter, aber sei’s drum.
Inhaltlich sehe ich nichts an Deinem Code, was problematisch wäre - Du rufst sogar Dispose auf das erzeugte Graphics-Object auf, das vergessen die meisten.

Ich vermute, dass das Problem durch ein Speicherleck in Bitmap.Save() ausgelöst wird, ähnlich wie hier beschrieben:
http://stackoverflow.com/questions/871610/bitmap-sav…
oder auch hier:
http://stackoverflow.com/questions/6417299/memorylea…

Dort findest Du auch Alternativen ohne Memory leak.

Gruß,
Martin