我想要一个相对无黑客的方式来做这个,任何想法?例如,以下截图不包括半透明窗口:
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 …Run Code Online (Sandbox Code Playgroud) 我正在寻找与截图工具相同的.NET代码 - 捕获屏幕区域.我相信它使用钩子.知道如何突出显示所选片段会很有趣.
更新:找到http://www.codeproject.com/KB/vb/Screen_Shot.aspx.虽然人们说它缺少一些重要的文件来进行适当的编译.