E
Eddie Dunn
I have one here that I cannot find anything on in my searching.
I am implementing a screen capture functionality into my Visual Basic
..NET application.
The code I am using calls the bitblt function in gdi32.dll to achieve
its magic as follows:
Public Function CreateScreenshot() As Bitmap
Dim Rect As Rectangle = Screen.PrimaryScreen.Bounds
Dim gDest As Graphics
Dim hdcDest, hdcSrc As IntPtr
CreateScreenshot = New Bitmap(Rect.Right, Rect.Bottom)
gDest = gDest.FromImage(CreateScreenshot)
hdcSrc = GetDC(IntPtr.Zero)
hdcDest = gDest.GetHdc
BitBlt(hdcDest, 0, 0, _
Rect.Right, Rect.Bottom, hdcSrc, 0, 0, SRCCOPY)
gDest.ReleaseHdc(hdcDest)
ReleaseDC(IntPtr.Zero, hdcSrc)
End Function
This code works marvelously HOWEVER.....
This screen capture needs to capture my form (which is opaque) ontop
another form.
I have found that when the opacity for the topmost form is set less
than 100 % it does not show up in my capture.
The interesting thing is that a Ctrl-Alt-Print Screen yields the
opaque form in the resulting capture perfectly.
I have some ideas as to why this might be occuring ( gdi functions not
supporting nifty rendering features like opacity being at the top)
Nothing I have come up with at this point (and my skill levels) lead
me to any obvious solutions
I would rather not use Sendkeys and the clipboard as I feel that this
is shoddy at best.
Anybody have any ideas?
Thanks In Advance
Eddie
I am implementing a screen capture functionality into my Visual Basic
..NET application.
The code I am using calls the bitblt function in gdi32.dll to achieve
its magic as follows:
Public Function CreateScreenshot() As Bitmap
Dim Rect As Rectangle = Screen.PrimaryScreen.Bounds
Dim gDest As Graphics
Dim hdcDest, hdcSrc As IntPtr
CreateScreenshot = New Bitmap(Rect.Right, Rect.Bottom)
gDest = gDest.FromImage(CreateScreenshot)
hdcSrc = GetDC(IntPtr.Zero)
hdcDest = gDest.GetHdc
BitBlt(hdcDest, 0, 0, _
Rect.Right, Rect.Bottom, hdcSrc, 0, 0, SRCCOPY)
gDest.ReleaseHdc(hdcDest)
ReleaseDC(IntPtr.Zero, hdcSrc)
End Function
This code works marvelously HOWEVER.....
This screen capture needs to capture my form (which is opaque) ontop
another form.
I have found that when the opacity for the topmost form is set less
than 100 % it does not show up in my capture.
The interesting thing is that a Ctrl-Alt-Print Screen yields the
opaque form in the resulting capture perfectly.
I have some ideas as to why this might be occuring ( gdi functions not
supporting nifty rendering features like opacity being at the top)
Nothing I have come up with at this point (and my skill levels) lead
me to any obvious solutions
I would rather not use Sendkeys and the clipboard as I feel that this
is shoddy at best.
Anybody have any ideas?
Thanks In Advance
Eddie