Bildobjekt vom Fenster erstellen

  • Hallo zusammen,

    ich habe mal wieder eine Frage und hoffe auf eure Hilfe.
    Hier im Beisp. erstelle ich ein Bildobjekt von einem Win.-Fenster. (Das glaube ich zumindest ;) )
    Im Beisp. mache ich das über den Umweg einer PNG-Datei.

    Spoiler anzeigen
    [autoit]


    #include <ScreenCapture.au3>
    #Include <String.au3>
    #include <File.au3>
    #Include <WinAPI.au3>
    #Include <GDIPlus.au3>

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

    $File = "C:\BilddateiTest.png"

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

    Run("notepad.exe")
    WinWait("[CLASS:Notepad]", "")
    $handle = ControlGetHandle("[CLASS:Notepad]", "", "Edit1")

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

    If @error Then
    MsgBox(4096, "Fehler ...", "Das richtige Fenster konnte nicht gefunden werden")
    Exit
    Else
    ; MsgBox(0, "i.O.", "alles iO.")
    EndIf

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

    ; Erstellt eine Bilddatei von einem Fenster
    _ScreenCapture_CaptureWnd ($File, $handle)

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

    _GDIPlus_Startup()
    ; Lade das Bild aus der Datei
    $hBitmap = _GDIPlus_ImageLoadFromFile ($File)

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

    $y = _GDIPlus_ImageGetHeight ($hBitmap)
    $x = _GDIPlus_ImageGetWidth ($hBitmap)

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

    MsgBox(0,"Fenstergröße","X ist:" & $x & " Y ist:" & $y)
    ; ...und so weiter
    ; ...und so weiter
    _GDIPlus_ImageDispose($hBitmap)
    _GDIPlus_Shutdown()

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


    Meine Frage ist jetzt:
    Wie kann ich mir das Speichern der Bilddatei sparen und gleich zu dem Bildobjekt kommen?
    Vielen Dank.

    Gruß Schumi

    Einmal editiert, zuletzt von Schumi (7. Oktober 2013 um 18:42)

  • _ScreenCapture_CaptureWnd () liefert dir ein GDI Bitmap zurück, wenn du nicht speicherst.

    Anschließend das GDI Bitmap in GDI+ umwandeln (_GDIPlus_BitmapCreateFromHBITMAP) und du kannst es direkt benutzen!

    Das freigeben der Ressourcen nicht vergessen!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯