GetDesktopWindow (user32)
Last changed: -2.7.210.14

.
Summary

C# Signature:

[DllImport("user32.dll", SetLastError = false)]
static extern IntPtr GetDesktopWindow();

VB Signature:

Private Declare Auto Function GetDesktopWindow Lib "user32.dll" () As IntPtr

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

Here are some functions that you can use to get an image of the destop:

    Private Declare Auto Function GetDesktopWindow Lib "user32.dll" () As IntPtr
    Private Declare Auto Function GetWindowDC Lib "user32.dll" (ByVal _
    windowHandle As IntPtr) As IntPtr
    Private Declare Auto Function ReleaseDC Lib "user32.dll" (ByVal _
    windowHandle As IntPtr, ByVal dc As IntPtr) As Integer
    Private Declare Auto Function BitBlt Lib "gdi32.dll" (ByVal _
    hdcDest As IntPtr, ByVal nXDest As Integer, ByVal _
    nYDest As Integer, ByVal nWidth As Integer, ByVal _
    nHeight As Integer, ByVal hdcSrc As IntPtr, ByVal nXSrc _
    As Integer, ByVal nYSrc As Integer, ByVal dwRop As _
    System.Int32) As Boolean
    Private Const SRCCOPY As Integer = &HCC0020
    Public Function GetScreenshot(ByVal windowHandle As IntPtr, _
    ByVal location As Point, ByVal size As Size) As Image
    Dim myImage As Image = New Bitmap(size.Width, size.Height)
    Dim g As Graphics = Graphics.FromImage(myImage)
    Dim destDeviceContext As IntPtr = g.GetHdc
    Dim srcDeviceContext As IntPtr = GetWindowDC(windowHandle)
    BitBlt(destDeviceContext, 0, 0, size.Width, size.Height, _
    srcDeviceContext, location.X, location.Y, SRCCOPY)
    ReleaseDC(windowHandle, srcDeviceContext)
    g.ReleaseHdc(destDeviceContext)
    Return myImage
    End Function

Alternative Managed API:

Do you know one? Please contribute it!

Documentation