我想要一个相对无破解的方式来做到这一点,任何想法?例如,下面以截图不包括半透明窗口:捕获屏幕截图包括.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
无论是我的谷歌福真的很烂或者这并不像听起来那么容易。我很确定为什么会发生这种情况,因为视频驱动程序必须将内存分开才能完成这项工作,但我不在乎它为什么不起作用,我只是想不这样做......
*打印屏幕键黑客
*第三方软件
* SDK功能是确定的,但我会给予好评的,可以告诉我,它在纯框架用户所拥有的所有对象(开个玩笑,但是这将是很好)。
如果This是唯一的方法来做到这一点,如何在VB中做到这一点?
1M谢谢。
“如果这是做到这一点的唯一方法......”一个小小的研究似乎表明,这也行不通。 – FastAl 2010-06-18 18:54:01