Me gustaría una forma relativamente libre de pirateo para hacer esto, ¿alguna idea? Por ejemplo, la siguiente toma una captura de pantalla que no incluye la ventana semitransparente:Captura de pantalla Incluyendo ventanas semitransparentes en .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
O mi google-fu es una mierda o esto no es tan fácil como parece. Estoy bastante seguro de por qué sucede esto debido a la forma en que el controlador de video tendría que separar la memoria para hacer que esto funcione, pero no me importa por qué no funciona, solo quiero hacerlo sin ...
* impresión de pantalla hacks clave
de software * 3 ª parte
funciones * SDK están bien, pero voy a upvote todos los objetos propiedad del usuario que me pueda declarar en el marco puro (es broma, pero sería agradable).
Si This es la única manera de hacerlo, ¿cómo hacerlo en VB?
1M gracias.
"Si esta es la única manera de hacerlo ..." una pequeña investigación parece indicar que eso tampoco funcionaría. – FastAl