_ScreenCapture_CaptureWndEx

  • Ich habe mir mal die Funktion _ScreenCapture_Capture angesehen und auseinandergenommen. :D
    Das hier ist dabei rausgekommen (Eine Funktion die Screenshots von der ClientArea eines Fensters machen kann auch wenn sie inaktiv sind) :thumbup: .

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>
    #include <GDIPlus.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Run("notepad")

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(100)
    Send("iuifrieobrfowberfbzebrfzernuzieznr")
    Sleep(100)

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = WinGetHandle(WinGetTitle("Unbenannt"))

    [/autoit] [autoit][/autoit] [autoit]

    $hBMP = _ScreenCapture_CaptureWndEx($hWnd, -1, -1)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBMP)
    _GDIPlus_ImageSaveToFile($hBitmap, @ScriptDir & "\Test.png")
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()

    [/autoit] [autoit][/autoit] [autoit]

    _WinAPI_DeleteObject($hBMP)

    [/autoit] [autoit][/autoit] [autoit]

    Func _ScreenCapture_CaptureWndEx($hWnd, $iWidth = -1, $iHeight = -1)
    If $iWidth = -1 Then $iWidth = _WinAPI_GetClientWidth($hWnd)
    If $iHeight = -1 Then $iHeight = _WinAPI_GetClientHeight($hWnd)

    [/autoit] [autoit][/autoit] [autoit]

    Local $hDDC = _WinAPI_GetDC($hWnd)
    Local $hCDC = _WinAPI_CreateCompatibleDC($hDDC)
    Local $hBMP = _WinAPI_CreateCompatibleBitmap($hDDC, $iWidth, $iHeight)
    _WinAPI_SelectObject($hCDC, $hBMP)
    _WinAPI_BitBlt($hCDC, 0, 0, $iWidth, $iHeight, $hDDC, 0, 0, 0x00CC0020)

    [/autoit] [autoit][/autoit] [autoit]

    _WinAPI_ReleaseDC($hWnd, $hDDC)
    _WinAPI_DeleteDC($hCDC)
    Return $hBMP
    EndFunc

    [/autoit]


    Ich hoffe das gibt es nicht schon... :S

  • Sieht sehr schön aus :thumbup:
    Wie immer ein einmaliger name22

    mfg Ubuntu

    Ps:Ich schätze die Tasten
    iuifrieobrfowberfbzebrfzernuzieznr
    sind sehr bedacht gewählt ;)