猿问

捕获屏幕截图,包括.NET中的半透明窗口

我想要相对自由的方式来做到这一点,有什么想法吗?例如,以下内容截取了不包含半透明窗口的屏幕截图:


Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown

        Text = "Opaque Window"

        Dim win2 As New Form

        win2.Opacity = 0.5

        win2.Text = "Tranparent Window"

        win2.Show()

        win2.Top = Top + 50

        win2.Left = Left() + 50

        Dim bounds As Rectangle = System.Windows.Forms.Screen.GetBounds(Point.Empty)

        Using bmp As Bitmap = New Bitmap(bounds.Width, bounds.Height)

            Using g As Graphics = Graphics.FromImage(bmp)

                g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size)

            End Using

            bmp.Save("c:\temp\scn.gif")

        End Using

        Process.Start(New Diagnostics.ProcessStartInfo("c:\temp\scn.gif") With {.UseShellExecute = True})

    End Sub

End Class

我的Google-fu真的很烂,或者听起来并不容易。我很确定为什么会发生这种情况,因为视频驱动程序必须分开内存才能完成这项工作,但是我不在乎为什么它行不通,我只想在没有它的情况下做...

*印刷屏幕按键破解

*第三方软件

* SDK功能尚可,但我会投票支持用户拥有的每个对象,这些对象可以在纯框架中向我展示(只是开个玩笑,但会很好)。


如果这是唯一的方法,那么我如何在VB中这样做呢?


郎朗坤
浏览 803回答 2
2回答

蝴蝶刀刀

您可以Size sz使用Screen.AllScreens;总宽度和最大高度的新屏幕来捕获多个屏幕
随时随地看视频慕课网APP
我要回答