Screen Capture Problem

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Peter329.

    Screen Capture Problem

    Hi,

    ich möchte den aktuellen Bildschirm in einer Picture Box anzeigen. Dazu habe ich eine Anwendung geschrieben ... mit dem Button1 wird der Snapshot gezogen.

    Natürlich möchte ich aber diese Anwendung selbst nicht in meinem Snapshot sehen. Deswegen verstecke ich die Form ... ziehe den Snapshot ... und blende meine Anwendung wieder auf.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Me.Hide()
    3. Me.Refresh()
    4. Dim area As Rectangle
    5. Dim capture As System.Drawing.Bitmap
    6. Dim graph As Graphics
    7. area = New Rectangle(0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    8. capture = New System.Drawing.Bitmap(area.Width, area.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
    9. graph = Graphics.FromImage(capture)
    10. graph.CopyFromScreen(area.X, area.Y, 0, 0, area.Size, CopyPixelOperation.SourceCopy)
    11. PictureBox1.Image = capture
    12. Me.Show()
    13. End Sub


    Die gute Nachricht: das Coding läuft fehlerfrei durch.

    Die schlechte Nachricht: die Form1 ist im Snapshot immer noch sichtbar ... das Sache mit Me.Hide() und Me.Refresh() klappt nicht!

    Was mache ich denn falsch?

    LG
    Peter
    Yip ... Opacity=0 funktioniert! Danke !

    Jetzt habe ich noch eine Frage.

    Zur Zeit speichere ich das Screen Image in eine .jpg Datei mit folgendem Coding:

    VB.NET-Quellcode

    1. PictureBox1.Image.Save(saveFileName, System.Drawing.Imaging.ImageFormat.Jpeg)


    Kann man die Bitmap "capture" auch direkt, also ohne über eine Picture Box in eine .jpg Datei speichern? Die Picture Box benötige ich eigentlich nur zum Testen.

    LG
    Peter