MeLLe
2004-05-07, 13:23:41
Hallo Mädels,
ich versuche mich gerade an einem Problem, was mich noch zu Verzweiflung treibt - wie erzeuge ich in VB.net einen Screenshot des Desktops, und sichere den dann nachher in einer Datei?
Zur Zeit habe ich das ganze so implementiert:
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As IntPtr, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Public Const SRCCOPY = &HCC0020
Dim hDW As Long
Dim DWhDC As Long
hDW = GetDesktopWindow
DWhDC = GetDC(hDW)
Dim img As New Bitmap(1280, 1024)
Dim gfx As Graphics = CreateGraphics.FromImage(img)
Dim imgDC As IntPtr = gfx.GetHdc
BitBlt(imgDC, 0, 0, 1280, 1024, DWhDC, 0, 0, SRCCOPY)
img.Save("desktop.bmp", Imaging.ImageFormat.Bmp)
gfx.ReleaseHdc(imgDC)
Eine Datei wird auch erzeugt. Nur leider ist das ganze ein komplett schwarzes Bild in 1280x1024. Warum? Was mache ich falsch?
Habt ihr ne Idee? Wäre super.
Danke!
ich versuche mich gerade an einem Problem, was mich noch zu Verzweiflung treibt - wie erzeuge ich in VB.net einen Screenshot des Desktops, und sichere den dann nachher in einer Datei?
Zur Zeit habe ich das ganze so implementiert:
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As IntPtr, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Public Const SRCCOPY = &HCC0020
Dim hDW As Long
Dim DWhDC As Long
hDW = GetDesktopWindow
DWhDC = GetDC(hDW)
Dim img As New Bitmap(1280, 1024)
Dim gfx As Graphics = CreateGraphics.FromImage(img)
Dim imgDC As IntPtr = gfx.GetHdc
BitBlt(imgDC, 0, 0, 1280, 1024, DWhDC, 0, 0, SRCCOPY)
img.Save("desktop.bmp", Imaging.ImageFormat.Bmp)
gfx.ReleaseHdc(imgDC)
Eine Datei wird auch erzeugt. Nur leider ist das ganze ein komplett schwarzes Bild in 1280x1024. Warum? Was mache ich falsch?
Habt ihr ne Idee? Wäre super.
Danke!