Ich habe mir mal die Funktion _ScreenCapture_Capture angesehen und auseinandergenommen.
Das hier ist dabei rausgekommen (Eine Funktion die Screenshots von der ClientArea eines Fensters machen kann auch wenn sie inaktiv sind) .
Spoiler anzeigen
#include <WinAPI.au3>
#include <GDIPlus.au3>
Run("notepad")
[/autoit] [autoit][/autoit] [autoit]Sleep(100)
Send("iuifrieobrfowberfbzebrfzernuzieznr")
Sleep(100)
$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()
_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)
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)
_WinAPI_ReleaseDC($hWnd, $hDDC)
_WinAPI_DeleteDC($hCDC)
Return $hBMP
EndFunc
Ich hoffe das gibt es nicht schon...