No, neviem, že kde by mohla byť chyba, kód mi pripadá v poriadku. Možno v tom, že ak zavoláte screenshot.Save tisíckrát, ale graph.CopyFromScreen len raz, tak Vám uloží tisíckrát jedno a to isté. Len dúfam, že potom objekty graph a screenshot po sebe ničíte pomocou metódy Dispose() . Asi najlepšie je použiť na ne kód Using...End Using, tak isto, ako na všetky objekty, ktoré majú metódu Dispose(), resp. ktoré dedia z rozhrania IDisposable . Ak pridáte toto do akejkoľvek triedy, po zavolaní CopyScreen by Vám malo urobiť screenshot, počítadlom je tu premenná count, tá musí byť mimo metódy CopyScreen. 1 2 3 4 5 6 7 8 9 10 11 12 13 | Dim count As Integer
Public Sub CopyScreen()
Dim bounds = Screen.PrimaryScreen.Bounds
Dim width = bounds.Width
Dim height = bounds.Height
Using screenshot = New System.Drawing.Bitmap(width, height, System.Drawing.Imaging.PixelFormat32bppArgb)
Using graph = System.Drawing.Graphics.FromImage(screenshot)
graph.CopyFromScreen(0, 0, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)
End Using
screenshot.Save( "C:/test_" & count & ".jpg" , System.Drawing.Imaging.ImageFormat.Jpeg)
End Using
count += 1
End Sub
|
|