_ScreenCapture_Capture() ohne Hilfsdtei verwennden

  • Ich möchte eine Pixelgruppe eines Fensters auslesen.

    Bisher habe ich es so gelöst:

    Test0.au3

    Das Ergebnis der Funktion Gruppe() ist ein String folgender Form:

    0x424D5A0000000000000036000000280000000400000003000000010018000000000000000000C40E0000C40E00000000000000000000900000900000900000900000900000900000900000900000F9CB81F9F4F0F9F4F0F9F4F0

    Es gefällt mir nicht, dass diese Lösung über eine Hilfsdatei erfolgt.

    Die Funktion _ScreenCapture_Capture() bietet schließlich die Möglichkeit, dass statt $datei ein Leerstring eingesetzt wird. Dann wird als Ergebnis ein HBITMAP-Handle zu einem Bitmap –Bild zurückgegeben. Aber wie komme ich über das Handle an den String heran?

    Zusammengefasst: wie müsste die Funktion Gruppe() aussehen, damit sie das gleiche Ergebnis bringt, jedoch ohne Hilfsdatei auskommt.

    Vielen Dank schon einmal im Voraus!

  • Ich vermute mal, du willst dir eher die Pixel anschauen und damit weiterarbeiten, und nicht den "String", der nur ein String aus binärdaten ist, die eine enkodierte (bitmap) datei ergibt.

    Wenn du tatsächlich das ganze z.B. als JPG im Abreitsspeicher haben willst, schau dir mal: _GDIPlus_ImageSaveToStream ( $hImage, $pStream, $tEncoder [, $tParams = 0] )

    Ansonsten dürfte dir das hier alle Informationen geben, die du brauchst:

    Die Funktion gibt dir ein Array mit der Farbe jedes Pixels als ARGB ([A, R, G, B]).

    Es dürfte aber deutlich bessere Lösungen geben als das hier.
    Dafür müssten wir aber wissen, wofür du das ganze haben möchtest. ScreenCapture ist vermutlich garnicht das was du brauchst.

  • Recht vielen Dank Kanashius für deine Antwort.

    Ich habe mehrer Programm, in welchen ich mit Bitmaps in dieser Stringform arbeite. Ich möchte lediglich die entsprechenden Befehle austauschen und sozusagen nicht jeweils das ganze Programm "umkrempeln". Wahrscheilch gibt es wohl keine Möglichkeit an den String heranzukommen.