File to Base64 String Code Generator v1.20 Build 2020-06-05

  • Da ich relativ oft Binär Strings verwende, um Bilder, Sounds, etc. direkt vom Speicher zu lesen, habe ich kleines Tool dazu geschrieben, das eine Datei in einen Base64 String umwandelt und gleich als Funktion bereit stellt.

    Optional kann man den Base64 String vorher mit der Build-In Funktion (ntdll.dll) oder mit LZMAT komprimieren, um Platz zu sparen!

    Danke an
    trancexx für die LZNTCompress / LZNTDecompress und _Base64Decode() Funktionen
    Ward für die _Base64Encode() / LZMAT und MsgBoxEx() Funktionen
    wraithdu für die Beseitung und Erweiterung des Codes

    Tipp: für größere Dateien würde ich die Kompression auf Standard setzen, damit die Kompression schneller geht -> rechte Maustaste auf das Label Compression -> Compression Strength -> Standard

    Die Bedienung sollte selbsterklärend sein.

    Download: File to Base64 String Code Generator v1.20 Build 2020-06-05 (AutoIt Version 3.3.13.19 oder höher benötigt!)

    Source Code auf Pastebin.com

    Für Anwendungsbeispiele siehe Post#6.

    Über Kritik würde ich mich wie immer freuen. :D

    Gruß,
    UEZ


    Historie:

    Spoiler anzeigen



    2011-10-29: kleine Änderungen an der GUI + schnelleres Erstellen des Binär Strings
    2011-10-30: Code auf Base64 umgestellt + DEP Check + Bugs gefixt
    2011-10-31: noch ein Bug gefixt (Absturz bei 0 Kb Dateien) + Modifikationen an dem GUI Code
    2011-11-01: und wieder ein Bug gefunden (leere Inhalt konnte gespeichert werden)
    2011-11-11: Multi File Auswahl hinzugefügt
    2011-11-12: Funktionsnamen Bug beseitigt (danke Oscar!)
    2011-11-14: kleine Modifikationen am Code
    2011-11-15: Version 1.0 veröffentlicht und Name geändert
    2011-11-16: Komprimierung wird nun automatisch abgeschaltet, wenn die komprimierte Größe größer als die Original Größe ist. Farben können nun über die Ini Datei gesteuert werden
    2011-11-17: Credits Funktion hinzugefügt
    2011-11-21: ein Sleep(50) in eine Schleife hinzugefügt, da ansonsten die CPU unnötig schwitzt
    2012-01-14: Funktion Load_BMP_From_Mem() aktualisiert
    2012-04-11: kleinere Bugs in Funktion Load_BMP_From_Mem() Funktion gefixed und Funktion hinzugefügt den generierten Code direkt in SciTE einzufügen
    2012-04-17: Popup Menu hinzugefügt, damit man u.a. den selektierten Bereich in die Zwischenablage kopieren kann
    2012-04-24: Kompressionseinstellung wird jetzt auch in der Ini Datei gespeichert
    2012-05-02: Drag'n'Drop von Files auf die GUI hinzugefügt + Kompressionseinstellung wird auch in der Ini Datei gespeichert
    2012-05-03: Ordner konnten auch per Drag'n'Drop auf die GUI hinzugefügt -> fixed
    2012-05-18: Kopieren des generierten Codes in das Clipboard mit RMB im Editfeld + Kompressionsstatistik kann jetzt wieder angezeigt werden, wenn Label Multiselect mit der LMT gedrückt wird + Code zum Speichern des Binärstrings hinzugefügt
    2012-05-31: Fehler in der Drag'n'Drop Funktion behoben
    2012-07-23: einige interne Modifikationen
    2012-08-29: Bug gefixt in der Multi Selektion Kompression. Binär String wurde nicht komprimiert übergeben, somit war der Binärstring unbrauchbar!
    2012-10-12: Drag'n'Drap von einem Ordner war möglich -> ist jetzt gefixt
    2012-10-13: "New Length" Wert wurde nicht gelöscht, wenn die Kompression nicht aktiviert wurde
    2013-02-19: Buffersize als Aufrufparameter für die Funktion _WinAPI_LZNTDecompress() hinzugefügt.
    2013-03-25: Option für die Pfadangabe in generierter Code Funktion hinzugefügt und @LF durch @CRLF ersetzt, kritischen Fehler behoben
    2014-05-01: LZMAT Kompression hinzugefügt + einige interne Modifikationen
    2014-05-30: Statistik Werte wurden den Umständen falsch angezeigt
    2014-06-01: einige Fehler in der Checkbox Logik behoben, was dazu führen konnte, dass der Base64 String nicht zur Entpackfunktion passt
    2014-06-05: kleine optische Änderungen
    2014-08-01: einige Bugs wurden von wraithdu bezüglich LZMT Dekompression in x64 Modus und noch andere Code Segmente gefixt.
    2014-08-02: Option hinzugefügt, um kontinuierliche Funktion Namen zu erzeugen, wenn Multi-Dateien ausgewählt werden, um Funktionen einfach innerhalb Skript behandeln - danke an Oscar für die Idee!
    2014-11-05: Bug gefixt, wenn LZMAT selektiert wurde, war LZNT immer noch selektiert.
    2014-11-11: hatte vergessen in der ASM_DecompressLZMAT Funktion einige Variable zu deklarieren, was bei Benutzung von AutoItSetOption("MustDeclareVars", 1) zu Fehlern führt
    2015-01-20: Output Source Code ein wenig modifiziert

    2020-06-05: Code aktualisiert, damit der Code mit der neusten AutoIt Version sauber läuft. Keine neuen Features hinzugefügt!

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    81 Mal editiert, zuletzt von UEZ (5. Juni 2020 um 22:15)

  • ich würde mich über ein beispiel freuen, denn ich verstehe noch nicht so ganz wie man das anwendet....

    wie liest du denn sachen direkt vom speicher ? - heisst es, dass du z.B. ein mp3 direkt von dort abspielst ??

    wenn dem nicht so ist, und ich es doch vorher auf die festplatte auslagern muss um es dann mit den autoit-eigenen funktionen abspielen/verwenden zu können, dann erkläre mir bitte den unterschied/sinn zu fileinstall.

    danke & lg

  • WhiteLion: genau, man kann jede Datei als Binär String im Speicher ablegen und ihn dann direkt vom Speicher auslesen z.B. Grafiken, MP3s, etc..

    Beispiel für Grafiken:

    Das Autoit Logo und der Merlin (Datei liegen unter ..\AutoIt3\Examples\GUI\) wurden mit dem Tool als Binär String erstellt und direkt dann aus dem Speicher in die GUI geladen.

    Spoiler anzeigen
    [autoit]


    ;coded by UEZ 2011
    #include <buttonconstants.au3>
    #include <guiconstantsex.au3>
    #include <gdiplus.au3>
    #include <memory.au3>

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

    _GDIPlus_Startup()
    Global Const $IMAGE_BITMAP = 0
    Global Const $STM_SETIMAGE = 0x0172
    Global $msg
    Global Const $hGUI = GUICreate("Example", 600, 250)
    Global Const $idLogo = GUICtrlCreatePic("", 215, 20, 169, 68)
    Global Const $idButton = GUICtrlCreateButton("", 266, 150, 78 , 81, $BS_FLAT + $BS_BITMAP)

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

    Global Const $hButton = GUICtrlGetHandle($idButton)

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

    Global Const $Bmp_Logo = Load_BMP_From_Mem(AutoIt_Logo(), True)
    _WinAPI_DeleteObject(GUICtrlSendMsg($idLogo, $STM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Logo))
    Global Const $Bmp_Button = Load_BMP_From_Mem(Merlin(), True)
    _WinAPI_DeleteObject(_SendMessage($hButton, $BM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Button))
    _WinAPI_UpdateWindow($hButton)
    GUISetState()

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case $idLogo
    MsgBox(0, "Information", "The picture has been clicked!")
    Case $idButton
    MsgBox(0, "Information", "the button has been clicked!")
    Case $GUI_EVENT_CLOSE
    _WinAPI_DeleteObject($Bmp_Logo)
    _WinAPI_DeleteObject($Bmp_Button)
    _GDIPlus_Shutdown()
    GUIDelete($hGUI)
    Exit
    EndSwitch
    WEnd

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

    ;======================================================================================
    ; Function Name: Load_BMP_From_Mem
    ; Description: Loads an image which is saved as a binary string and converts it to a bitmap or hbitmap
    ;
    ; Parameters: $bImage: the binary string which contains any valid image which is supported by GDI+
    ; Optional: $hHBITMAP: if false a bitmap will be created, if true a hbitmap will be created
    ;
    ; Remark: hbitmap format is used generally for GUI internal images, $bitmap is more a GDI+ image format
    ; Don't forget _GDIPlus_Startup() and _GDIPlus_Shutdown()
    ;
    ; Requirement(s): GDIPlus.au3, Memory.au3 and _GDIPlus_BitmapCreateDIBFromBitmap() from WinAPIEx.au3
    ; Return Value(s): Success: handle to bitmap (GDI+ bitmap format) or hbitmap (WinAPI bitmap format),
    ; Error: 0
    ; Error codes: 1: $bImage is not a binary string
    ; 2: unable to create stream on HGlobal
    ; 3: unable to create bitmap from stream
    ;
    ; Author(s): UEZ
    ; Additional Code: thanks to progandy for the MemGlobalAlloc and tVARIANT lines and
    ; Yashied for _GDIPlus_BitmapCreateDIBFromBitmap() from WinAPIEx.au3
    ; Version: v0.97 Build 2012-01-04 Beta
    ;=======================================================================================
    Func Load_BMP_From_Mem($bImage, $hHBITMAP = False)
    If Not IsBinary($bImage) Then Return SetError(1, 0, 0)
    Local $aResult
    Local Const $memBitmap = Binary($bImage) ;load image saved in variable (memory) and convert it to binary
    Local Const $len = BinaryLen($memBitmap) ;get length of image
    Local Const $hData = _MemGlobalAlloc($len, $GMEM_MOVEABLE) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002)
    Local Const $pData = _MemGlobalLock($hData) ;translate the handle into a pointer
    Local $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct
    DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data
    _MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE
    $aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0) ;Creates a stream object that uses an HGLOBAL memory handle to store the stream contents
    If @error Then SetError(2, 0, 0)
    Local Const $hStream = $aResult[3]
    $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) ;Creates a Bitmap object based on an IStream COM interface
    If @error Then SetError(3, 0, 0)
    Local Const $hBitmap = $aResult[2]
    Local $tVARIANT = DllStructCreate("word vt;word r1;word r2;word r3;ptr data; ptr")
    DllCall("oleaut32.dll", "long", "DispCallFunc", "ptr", $hStream, "dword", 8 + 8 * @AutoItX64, _
    "dword", 4, "dword", 23, "dword", 0, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr($tVARIANT)) ;release memory from $hStream to avoid memory leak
    $tMem = 0
    $tVARIANT = 0
    If $hHBITMAP Then
    Local Const $hHBmp = _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
    _GDIPlus_BitmapDispose($hBitmap)
    Return $hHBmp
    EndIf
    Return $hBitmap
    EndFunc ;==>Load_BMP_From_Mem

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

    Func _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
    Local $tBIHDR, $Ret, $tData, $pBits, $hResult = 0
    $Ret = DllCall($ghGDIPDll, 'uint', 'GdipGetImageDimension', 'ptr', $hBitmap, 'float*', 0, 'float*', 0)
    If (@error) Or ($Ret[0]) Then Return 0
    $tData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $Ret[2], $Ret[3], $GDIP_ILMREAD, $GDIP_PXF32ARGB)
    $pBits = DllStructGetData($tData, 'Scan0')
    If Not $pBits Then Return 0
    $tBIHDR = DllStructCreate('dword;long;long;ushort;ushort;dword;dword;long;long;dword;dword')
    DllStructSetData($tBIHDR, 1, DllStructGetSize($tBIHDR))
    DllStructSetData($tBIHDR, 2, $Ret[2])
    DllStructSetData($tBIHDR, 3, $Ret[3])
    DllStructSetData($tBIHDR, 4, 1)
    DllStructSetData($tBIHDR, 5, 32)
    DllStructSetData($tBIHDR, 6, 0)
    $hResult = DllCall('gdi32.dll', 'ptr', 'CreateDIBSection', 'hwnd', 0, 'ptr', DllStructGetPtr($tBIHDR), 'uint', 0, 'ptr*', 0, 'ptr', 0, 'dword', 0)
    If (Not @error) And ($hResult[0]) Then
    DllCall('gdi32.dll', 'dword', 'SetBitmapBits', 'ptr', $hResult[0], 'dword', $Ret[2] * $Ret[3] * 4, 'ptr', DllStructGetData($tData, 'Scan0'))
    $hResult = $hResult[0]
    Else
    $hResult = 0
    EndIf
    _GDIPlus_BitmapUnlockBits($hBitmap, $tData)
    Return $hResult
    EndFunc ;==>_GDIPlus_BitmapCreateDIBFromBitmap

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

    Func AutoIt_Logo()
    Local $AutoIt_Logo
    $AutoIt_Logo &= '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'
    $AutoIt_Logo &= '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'
    $AutoIt_Logo &= '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'
    $AutoIt_Logo &= 'cy5hgUkAqHEOcABh1yoABOpwVLGVSVcAZYpQ1AQvsBMAfYoZ69AEe4AABTHzZgA0ABsA4AsP0D+WCrMAHmBImEED/eUAEPEKAC5Qr50AsAqkCpDX8AkABkALbxAGofAARVJrC0FzsPcAYFi0kLW+KgUAV7kGwvCmLQAABxcLbAPRD9IAig0JkADkmQEA4LAuGogXHQAAA85gLntAGOMAxBSD0AEJMAYAd4AXCTAANDAAdEtwBTKQBF8AAAlYME6EAQMAotMEAgADIzAAAAlQB/81lpIA/wAEqUAkrQMAHIMQGom3BCAA0wH6kgSD0L0A3QoHQNQQ0uAAC+zgAs7gDAgAgAb+iKqVe7kAW1APiCABUQsAOJ/bDVpgA2EAAAG0wKsQywkAczALZ9AJzuAAAiwgAObDU6AA6Q9CYAXqMAEALgAHwICzWYMADxoHtuyAAScA1gS+QIMIgAAAVtACPoABOzAAAVFQryEsAIsAdG4u8AL4W68AL6DCTNByJvAAuFaAADjQYggAMAE+IABgsAcATHAbWfOnGwAAtkF8bdzRBEAAELZEOwEUCwcAMqB4jDsMGXAAvy7gAssgAnwA4HR6EASWCwEAAQxBUXs4CIwACFTAwDNQAHoAIAW4hpk0cMYA7DBnLmQ2WUMAAzS8AzIgA0AA/+CzYvMAzuAAC4icyEAgeZkA0AQykAHfIgAAMhAAe9AIwIAAyIi8yIuUCQgABQSJfMpA8AAA8NNyrmECviAACZLgCwKwA2AA8ACpMHkzkQkAD6AOkhDJigwABoqXA00QB7MAcsq/LMYOIQYAauADL9ACLeAAAgiAAmuMqkEA0Kqw8Az18EAAP7DN1xNHEAAACzNQCOnVx6sAsAzOzA7zwQ8ATUB3AuFIlfQASEP8D+5cSXgAQCQttwdxkM8Ae3BQTPDOP+sAnRH2zpMHGcIAjAd7AAL5HAcAILAH69YxYTEAz5GUbSGSA1cAgG30PFwPkQMA0rADPsAOzgwAzfybCAqgB4IAMA4zAAungAsAXPQETxBHzxAADm4wDkGgBz0A/4CNa9AF5twAAi8Axhk8m7IAswRAHdSbw0gAQh3Uf5QDNMcABOc5c0VX1EAAHRY50NRF/UcAjDRESs0E58MA1Ljx01PNFlEA7dRUndHVIAAAHe3MLUAEZ1AAA+jwCuSgB4UAYNJuEA6nMNcA4QDTqCDOt/AACokwByKwAdwAcM4+sANxcJ4AQw0SUR3WG5EAA4pddIgtFGIAYA0CAAfs8AIAzayPJUBvPUAADkcQBIWACp4A7dmFUAhHMFMA61UDQxABE6AA0ywAB4K91AMABCyR8dg7kAEAAEDZPrwMUcAABYuQCK7QA7cAcATADdy3QA4ArwANiwANSFAAgzqNpxggA3EA0EevDduxXQ0AQCAJPsACto0AxstwATeARW0A/wANsiAL0PAA3WiABDzwDZ0A0AKTzQI+EL4AILDURifd3SEARA8gALTNAuwAkN8vMAEemg4Av9AFQ9AFZ/AACzywDVbQwy8AwA4sAAAZAAwAARAIWR3d8p0AMplgDWAALgAAwAL4PdnOIAwAy0AEII4ANMAAnwmu4AxuAkAA8NznU9gT/iYAslMNpAAEJoAAAT6Q4Rue3zgAnt8aDgAzLAAAKa7O89LYLS4AIlGdCdUQCAEAIAMmsA4Z4AMANQ4AUM7jPpAAAetgApv83C4AdAXsPOTAUuQAV6AKpPCsQLAAA8AgAGb+yZMA3GiBAORaLuQAXI4pi50JV/AA5aqgCk8KAqQAAAKBoArqfD4Ac66+Ev7mmNIA1HI+5+syRHMAIO4rgC7ojF4AEIp92IxddIoA3eiUXumWfukAmJ7pmr7pnB4AEAA7'
    $AutoIt_Logo = _Base64Decode($AutoIt_Logo)
    Local $tSource = DllStructCreate('byte[' & BinaryLen($AutoIt_Logo) & ']')
    DllStructSetData($tSource, 1, $AutoIt_Logo)
    Local $tDecompress
    _WinAPI_LZNTDecompress($tSource, $tDecompress)
    $tSource = 0
    Return Binary(DllStructGetData($tDecompress, 1))
    EndFunc ;==>AutoIt_Logo

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

    Func Merlin()
    Local $Merlin
    $Merlin &= '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'
    $Merlin &= 'OZ54QIDDNkMgcVa9lHDvBwQEII8AgJTwgB0gM0LrCTzIYIo5eqSwRAgQpPKKBFNk45QxU9grQSpePNBAAvYAckAJhgT/Me0G2DhhxwMQXDGLEEdssccm1dSjwAWAOJWP1GsHAUoKLOAiAAGAfAABDzFggI0VL8hTwgEh5KIKOCxgkkwwCqzd9lD1XKG2AvXU0kEf65RiD+d7LwHHCBj8wEPPPYsgzO6DYOLwvb3o1AwuqdwbDSCLALNFKJvrvXcKJzABxxQ9AwKIACLkMUwfHUACgU8SQBA9TJu8fy8BS3BRxg0JGJA38iFIhCAYcADzAYIA9hDAEgrghlgIIgQPs9cUQPASKDQAEK94xQU+IAB9+EEK+gjAA37nPa354AAESOEBE2iAFKTDBwnImk8uIAAtgOsk14DBGlpggFQcwAAzGEIB/xjAgAgIIAQh8N4Bp2APbqWQhQxoQToYIAAIlGACj1jDGm6IQxjokAcG8MCqBlCAASTgAYK4QhLNRwABuPF3bTTAAwbgh0dM4AFQgMYadMhFlCTiC87gRTh80AI/BKAABQiACEyRDDWu0I1uTKEADGCALWjhEUawBS9EsQYy9BEliDhFIVCAAmV8oQD6KEADFAkJVSgiBJKkJCTdKII9uIALjyDDKNsAh6y0hgp0gEMDBnCNRNwgFLmYxSweKUsB5AN9odCDC4iQDnLg4DiKIgoSspCBFWQgDvIgphkSUYoOzCIZv3OjLEUQDEWAAhQdWAcR4ODNFVSAHKgaChLekf+BDNThFqMYwASkwYYOdEAIwRCBOilJSXsoQhUdoAEQhtGINERhBbdAgVOQgALWkCEDUBhAA1hAAyEIQRiQZChDH2AARUSUBtJoRBTYsYI4oGA5Q7GGP7LzhSTgogAzWMAiPOEJA6T0AUhl6BKEIQSJSmEP7BhCGvxRCKdQog47hQY0GABULTTAAyJg6UojgNQHiOAFQtCDHtjAg058oQ7kSII3skKJRtAiCZxApBa0UIAEkHWsESArS9vxggSMQg9wSActCqGLuc7FDsDgxDV24AO+BuCvcoxAAjYb2Ah4wAMJ8EAlYjEEdXDiHogIzDDigYw+mIEFPkikX8u62QD/bPa2tdVHA4aADH54ZC6IYEE/+vAJcLghtgywLVKXkIAAONe5t3UuV4fAiXT8di6XQMYnzrEFNPA1uZu9Ai48EAB93OC5zyViAaSgjk5cNytg4IcdzDAIHlR2iLb1QB4wUQkSVGIR50UvA8iohXLkMjAqSAcXCmAGO6DBAmVMrn5pkIsjAMETAZYuVwtQYGc8IjDGMMEEGpACalgAwikYgD5G4QkgsIEGpbgBEZMbAPVy2AgWSAeIRVyACczAAnwtgDxKAYQOsOHIeZDxjGes13RYAFdzMYQFJkDlGfghyAyoxB7McGQagKMS+mBAmJkM1HQYQQsI3usMZqCFKyNyacCyWAQbznEEM7hAyWSeQJuvoALNwAIKUNBCC6b85hvAgQ2J2MEO5LFkG0/AAipILXNOAQYLxBaRN1hEOxqgygWseQYNaEBQfZCCFHxIBW8otTwYPYAUGGITIIi1rGP9BplB6da4TkhAAAA7'
    Return Binary(_Base64Decode($Merlin))
    EndFunc ;==>Merlin

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

    Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize = 0x800000)
    Local $tBuffer, $Ret
    $tOutput = 0
    $tBuffer = DllStructCreate('byte[' & $iBufferSize & ']')
    If @error Then Return SetError(1, 0, 0)
    $Ret = DllCall('ntdll.dll', 'uint', 'RtlDecompressBuffer', 'ushort', 0x0002, 'ptr', DllStructGetPtr($tBuffer), 'ulong', $iBufferSize, 'ptr', DllStructGetPtr($tInput), 'ulong', DllStructGetSize($tInput), 'ulong*', 0)
    If @error Then Return SetError(2, 0, 0)
    If $Ret[0] Then Return SetError(3, $Ret[0], 0)
    $tOutput = DllStructCreate('byte[' & $Ret[6] & ']')
    If Not _WinAPI_MoveMemory(DllStructGetPtr($tOutput), DllStructGetPtr($tBuffer), $Ret[6]) Then
    $tOutput = 0
    Return SetError(4, 0, 0)
    EndIf
    Return $Ret[6]
    EndFunc ;==>_WinAPI_LZNTDecompress

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

    Func _WinAPI_MoveMemory($pDestination, $pSource, $iLenght)
    DllCall('ntdll.dll', 'none', 'RtlMoveMemory', 'ptr', $pDestination, 'ptr', $pSource, 'ulong_ptr', $iLenght)
    If @error Then Return SetError(5, 0, 0)
    Return 1
    EndFunc ;==>_WinAPI_MoveMemory

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

    Func _Base64Decode($input_string)
    Local $struct = DllStructCreate("int")
    Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
    Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
    $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($a, 1)
    EndFunc ;==>_Base64Decode

    [/autoit]

    In diesem Beispiel wurden die Dateien mit Kompression gespeichert, welches keinen Sinn macht, da durch die Kompression die Daten Größer geworden sind. Daher ist dies nur ein Beispiel.

    Abspielen einer Wave Datei

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_UseX64=n
    #include <APIConstants.au3>

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

    $binWave = Wave()
    $tWave = DllStructCreate('byte[' & BinaryLen($binWave) & ']')
    $pWave = DllStructGetPtr($tWave)
    DllStructSetData($tWave, 1, $binWave)
    _WinAPI_PlaySound($pWave, BitOR($SND_ASYNC, $SND_MEMORY, $SND_NOWAIT))

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

    $tWave = 0

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

    Sleep(2000)

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _WinAPI_PlaySound
    ; Description....: Plays a sound specified by the given file name, resource, or system event.
    ; Syntax.........: _WinAPI_PlaySound ( $sSound [, $iFlags [, $hInstance]] )
    ; Parameters.....: $sSound - The string that specifies the sound to play. The maximum length is 255 characters. If $sSound is
    ; empty, any currently playing waveform sound is stopped.
    ; $iFlags - The flags for sound playing. This parameter can be one or more of the following values.
    ;
    ; $SND_APPLICATION
    ; $SND_ALIAS
    ; $SND_ALIAS_ID
    ; $SND_ASYNC
    ; $SND_FILENAME
    ; $SND_LOOP
    ; $SND_MEMORY
    ; $SND_NODEFAULT
    ; $SND_NOSTOP
    ; $SND_NOWAIT
    ; $SND_PURGE
    ; $SND_RESOURCE
    ; $SND_SYNC
    ;
    ; Windows Vista or later
    ;
    ; $SND_SENTRY
    ; $SND_SYSTEM
    ;
    ; Three flags ($SND_ALIAS, $SND_FILENAME, and $SND_RESOURCE) determine whether the name is interpreted
    ; as an alias for a system event, a file name, or a resource identifier. If none of these flags are
    ; specified, _WinAPI_PlaySound() searches the registry or the WIN.INI file for an association with
    ; the specified sound name. If an association is found, the sound event is played. If no association
    ; is found in the registry, the name is interpreted as a file name.
    ;
    ; If the $SND_ALIAS_ID flag is specified in $iFlags, the $sSound parameter must be one of the
    ; $SND_ALIAS_* values.
    ;
    ; (See MSDN for more information)
    ;
    ; $hInstance - Handle to the executable file that contains the resource to be loaded. If $iFlags does not
    ; contain the $SND_RESOURCE, this parameter will be ignored.
    ; Return values..: Success - 1.
    ; Failure - 0 and sets the @error flag to non-zero.
    ; Author.........: Yashied
    ; Modified.......:
    ; Remarks........: None
    ; Related........:
    ; Link...........: @@MsdnLink@@ PlaySound
    ; Example........: Yes
    ; ===============================================================================================================================
    Func _WinAPI_PlaySound($sSound, $iFlags = 0x00020010, $hInstance = 0)
    Local $TypeOfSound = 'ptr'
    If $sSound Then
    If IsString($sSound) Then $TypeOfSound = 'wstr'
    Else
    $sSound = 0
    $iFlags = 0
    EndIf
    Local $Ret = DllCall('winmm.dll', 'int', 'PlaySoundW', $TypeOfSound, $sSound, 'ptr', $hInstance, 'dword', $iFlags)
    If (@error) Or (Not $Ret[0]) Then Return SetError(1, 0, 0)
    Return 1
    EndFunc ;==>_WinAPI_PlaySound

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

    Func Wave()
    Local $Wave
    $Wave &= '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'
    $Wave &= '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'
    $Wave &= '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'
    $Wave &= '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'
    $Wave &= 'qPpD+eEMFPqR+D0OlfeW+7oMoPbo/T0KH/kb/IAJ2Pzz9yoL1v3/9VUNT/vv95oN5vi5+ogLUfqN+i8JlP5p9wQJEgG69DULWP8Q9SQNMfxt9y8MN/y2+O4IAgBU9+EGfQOr9FMIGgNi81ELIwCP9MsL6f629o8IZQFZ9w8FCAWI9TQFHgYL82QIMwSe8isKQgLb9MQH/gJE96ID3wXl9lMCGQj588sE0Qf68VIH7AWM80UG7QQP93wCUAZV+AcABAnW9RUBfgrH8pADYAk08/ADIgfi9mEBrgaL+Wr+Dgkz+MP97Avm9GL/FQwU9NMAYgkG9wUAOgds+l39jgib+jH7FAz691r7mw0+9jX9SAvP9zb+/gcV+5v85gex/In5Jwt6+wj4tg1/+Yr5Zwx0+fL73AjD+9f7XQdR/rP4hQnj/s71awxo/V32aQz++2v5gQnF/NT6EAeG/274mQfIAdL0AApsASn0KQs///j2mglW/n/56waEAG74wQXsA/n07gb+BDjzvwjSAgz11wiMAPb3sgaVAWX4NAROBfb1uQOsB6PzeQU+Bgz0EgdHA4X2FQbxAjb49wIVBmf31AA9CTn11QECCTb0YAQ1Bo71zQSwBO334wGIBu34jP60CZv3W/68Cpf1DQHiCG71vQK5Brv3vQDwBkH69/xMCU76gPs/C/z3jP3YCmD29f/KCOz3Sv90B1P79vtdCOL8jfmaCgf7V/rAC274vPx7Cs34Z/0aCDr8TftKB/3+lPgWCTP+6PduC2P7gPlkC4/6IPu1CC/9sPpeBoAAa/gdBwoBgvb3Cdj+xfY0Cy39s/j6CHb+7PmvBYMBxPgXBT4DMfahB00C+vTSCWgAg/afCDAA+vguBTsCSPlaA6kEyfbfBEkFWfRbB+ID9vRjB2wC8/ekBPMCrfkMAmEF+fchAm0H9PQmBBEHbPQ9BfMEHvfNA+UD1fkiAaAFZPnH/5AIl/arAH8JFPVRAnUHz/ZyAiMFzflvAK4FuPoE/sMI5Pht/doK4/b3/ogJTPd4AJwGy/mp/9IFxvva/EMIavvW+v0Kmvmn+8YKvPgB/goIF/qX/jAGiPwl/GMHwv0h+QsKyfzb+O8KD/tR+xkJ9voc/bwGLP2h+3IGrv9X+EkI+f/y9vAJB/7L+HIJkvxB+0YH7P0T+6YFEgFU+CAGsgIn9vQHNwHf9tsI3f5F+YIHCv9Q+g4FCwLE+P0DrQRs9lUFKwTd9UcHoAGE9yQHowBf+Y8EzgJc+ScC1QWJ94ECewbw9d4EfgRc9vUFuQJo+O4DlAPh+ccAPQYk+ez/3wcM9/UBBAce9u8DEgW09/QCiQQ6+sz/KQbd+t/9TQjx+P/+zQjt9j0BWAeR93MBtgV4+gj/5QVj/IX85AdA+2P8mwm7+Db+IQlF+Gf/9wbM+kL+rwWL/dT77AaO/Xr6XglC+0n7Fwrh+fH8GAhu+0X9rQVW/pP7wwWH/2X5PQgf/uL4AApQ/GT6vQia/Pv71gXv/nz7tAT4ABz5hQbgAFn31ghG/yf4nwhj/nj6+gWV/1P75gPlAWr5kAQrA9X2xgZXAp72lgeyAPj42AV+AO76ZwNwAgH6vgLABEX3LwQUBQ32pQVMA8f3MAXTAU/6CQPaApr6RAGbBXH4dAEbB5P2BgPGBUP31gN/A675kAJaAw77MgDRBQv6CP8kCBr4FgC8B6P31AFTBUn5wQEYBE77cv+pBa37Lv08CEb6Uv3XCO/4Y//4Bmn5egAOBXj70/5nBRn9AvyKB7f8F/v2CP761vwgCDr6vf4dBrr7IP49BSz+cPtiBgP/pfkmCIT9jfqDCM37rPwEB1j8LP09Bfb+R/sQBd4AF/mYBhwA6vj7B/z9nfpwB3z98/tTBZ//RPvgAycCR/mnBGgCG/iaBoIA4/goBzD/lfpOBVoANPv0AuUC+PmvAhwEMfiWBAAD1PcNBlEBUPn0BFgB+fpOAj8D3/oAARQFDPlHAhQFpPcyBJwD'
    $Wave &= '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'
    $Wave &= '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'
    $Wave &= 'CwCyAHX/w/+xAMX/T/8JAar/MP9SAU7/fP83AS3/y//YAHn/tv+hAOf/TP/PAAAAA/8pAbb/Iv9DAWz/ff/5AIv/nf+cAPv/V/+UAEIA+f7kABwA5/4oAcX/Lv8IAbH/d/+hAAQAaP9kAGgADv+SAHMA0P7rACcA8f77AO3/SP+mABEAb/9GAHcANP9DALAA3P6WAIYA0P7OADgAHP+fACoAa/83AHUAYP8EAMsACv82ANIA0f6EAIsA/f6FAFIAXf8vAHAAg//d/8kAR//h//4A9f4pANYA9/5TAIUAT/8kAHAAm//I/7UAif+d/wgBN//M/wcBEP8NALsASP8OAHwApf/C/5kAwv91//IAiP95/w=='
    Return Binary(_Base64Decode($Wave))
    EndFunc ;==>Wave

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

    Func _Base64Decode($input_string)
    Local $struct = DllStructCreate("int")
    Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
    Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
    $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($a, 1)
    EndFunc ;==>_Base64Decode

    [/autoit]

    Abspielen einer MP3 Datei unter Verwendung von Bass.au3 / Bass.dll

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_UseX64=n
    #include "BASS.au3"

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

    $binMP3 = MP3()
    $tMP3 = DllStructCreate('byte[' & BinaryLen($binMP3) & ']')
    $pMP3 = DllStructGetPtr($tMP3)
    DllStructSetData($tMP3, 1, $binMP3)

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

    $bass_dll = _BASS_Startup(@ScriptDir & "\BASS.dll")
    _BASS_Init($BASS_DEVICE_CPSPEAKERS)
    $hMusic = _BASS_StreamCreateFile(True, $pMP3, 0, BinaryLen($binMP3), 0)
    $song_length = _BASS_ChannelGetLength($hMusic, $BASS_POS_BYTE)
    _BASS_ChannelPlay($hMusic, 1)

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

    While 1
    Sleep(250)
    ConsoleWrite(_BASS_ChannelGetPosition($hMusic, $BASS_POS_BYTE) & " / " & _BASS_ChannelGetLength($hMusic, $BASS_POS_BYTE) & " (" & Round(_BASS_ChannelGetPosition($hMusic, $BASS_POS_BYTE) / _BASS_ChannelGetLength($hMusic, $BASS_POS_BYTE), 2) * 100 & "%)" & @CRLF)
    If _BASS_ChannelGetPosition($hMusic, $BASS_POS_BYTE) >= _BASS_ChannelGetLength($hMusic, $BASS_POS_BYTE) Then ExitLoop
    WEnd

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

    _BASS_ChannelStop($hMusic)
    _BASS_StreamFree($hMusic)
    DllClose(@ScriptDir & "\BASS.dll")
    $tMP3 = 0
    Exit

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

    Func MP3()
    Local $MP3
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= 'e9+fl6BBgsY2oafgQV4lmvw4ZhnrCgbIXmQOg/Uc/j2D8OEWfp7IIO5m7g2FGM8uVB1j/6VD/rp4ZD6Bb/4TN//oIvwEe/DNBQ6ieAAC5AAAHLbeCkLL/6WZ/5CFOGi/0PCxEhQgFcBhX//lGt//9H/bq/1YhFGyHBsC1TnKv/+ndwW8X+PVOHh2ZwAAACAJQcQvTmtRlrYe08eODz/4/XC4owYYxVQFCIrgQuhYmt5GKx2srWagkogzeIpZndTluZ1Ue0jckQgmEf473rhW00SY7uue/+r5YZDR//uSZN8AA89h1XqMLTJApavvHMLRjmk/XemYdMjuIO08oAqID1UvyM726ib9EYSiKl/D6X1F2Njav42IiH0nqodr42l6j4cWUoaFvNVdTICISQRLg48u2bV27PZyRCOKT/mkQWl//2Vve55hkff///5xoilurGJui1drfYxjHNTNc51aTe9hoqkgKkFhILBV3iYSZkqShU7aZEuvU1cs5oqoh2AACLZJUDy/j6woWeJV1mXMWNSFA/UfB2AsM7f3uVNl/j5dw/MF5eZKEeT7uVEiXCNJohW54ji4TCN/////wl/1I4/T/hRpzxI3UUiMstz577Zuu/1iv/4mk6eWv/9DL/pO7TiKlGGeLQXh38m8VVBEAAAFIAuAUjbk2/Iot0Q8v+Rgkbf//9cpDD/+3/zhwi7+vqGd5hagbHUDD7DsT85VU7FHreJzOdUe7nlyWMU1VnpCAAAAFwLEcRnp0JJFSiLmUdtBfuXWkgz831Dd1LRxylVURf+csk09VduwnqDpB9ECQnk7S9zkLjvVr/lVJVUjyNgIBorf////vtXiV//7kmTpAAPZZNZ5ekQSVGfL3z0nDY4Vg3fnnQ75BZRvvJKJLrNoqqOMrrg8evONa9dE60nMbtd77/9Vn/+2t/xL+/+J4vribmI9lPem8/amJWWvm7zAAAAKFUk5RQm0beN6vSFhGbVv//0czgOMOhPNb/6oIHOv//0/eN79VqjurVQwkFx5MiUWlQeN71o4usKLO6fjFmXeHZAAtOImQYUVzOSbqa0HyQp4obMw/42Aahv4qOvtKPqm0rh1JnOhFuLh4WzBGmR+kCUdYdMIVsBYef/381F/R1/Fy/Fd11jLnmPhupSrvbLEofV8UKEDQ8q/RZkQsxcSMcQQo0qouE/h7/e0nlVcQDvARF8RBi7CwoAQAw00pQIGDzq+LcYf/xjqf/06YQPT///YwmUQF6/9P39lKd3Hkxqpp2QDWCNLkdvD8RsWKkGd+SBgQS3FlRN5SEQAAAwPEi1Z1FOrfCLV3ts//67Kk/UHzVfB7FK8h2Xjeqd+00L+6lsxZukP7y1Y/bePqS0dr2mmu6DlmxMD4O8NwDWu//+qZdXdNnio3FL/+5Jk5wAD+GJV8RlcEEJITD88BUmPEYt74z0AOQYc8PxQFwbGEp9dvrrZfZpEPQl/thZytX9JGz1X3zV19TVqqnD9x1W2r590V+6u/VKgtaS309jfzAywAACamlAHydTadV7GJJv/TRATZH/6n/+6jiI4j6t/Vo7mlbKZgiAAIBv/09P4kKKYok6VjyDzrWIdrf///9TzDs7OAAEKQVKIXNDzsboLdSa1JJmpt9Zw3HJCBAh4cgl5loub0XNVqdvrmguM2BI9VWgfixFx6u3pZOiiYgUM//R+ZNkcpyzHbtVkRGFzFQYKCogPY7MY/6ilvTRSTVY7r5/yG6uidGKuzDh9wEJYgAUAEBEVoMa1p5pe/Wj/1nCKHwAQhbIv/5zfbceCpAYLN+rf/zg4cGglrzP8ddXfpMVzq1U1NKKpMgdqRHB8WEz36v+/tt+p9puT5NVN6r3YAACdST/AsckF7g6BB+gqQT9NhyAEo8m7Pf1Ip20LtZ1ImA55VLxoZo9Rq1//QUWAnd//1f97jgYt7HPV3lYrFT2UxHKcFsLYg7Ep//uSZOgABAxg1nF6XBJCZztPIaV8DdWTYekw'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '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'
    $MP3 &= '0sOJm2qtkWsgpt4x59zLVCUpt7KUFe0/pSTPqQvjG1pgwSaoY2HHLIhuprEt3pg7Uk8HWsCdE5JbAKqMeA23KwD71AF6hf/7kmTwACMRSErTpTVgWKe5JVcrggwc9SculPUBbB3kFcGikFe72XovRY7df1pIj5FcZv0Vi2cqOtqOzjBIAhfoqqTYyfXJjyXhQULnDIvk7wsmMsK0NodGewZSOA4gawLrvVz1F9YAISAAfPCG9EOzFLzD6GkpNVceVqvalnvf/W2VPQlvNRQde1iXNszue3U5qSt9ip/CI2e1CCt5tTdbv8tR63jK22TcpjGI+q27a9X0IjuoiGO2XrOqdGBvmd8iKlKulodF9esoJ9AkAe9j1HG91scbl+rS5fX3hn+V+5vX0jOYbTpEQJTY1qlyIKYamg6n92jF+7ASE4+SZGVJ22usMF7fQWlOo6xebFpmZkzGYVd06iqYZ+JMjvSZfWeKy8/f/NFaHX//iFrf/6h9aw0j4J4sH4+uugBAAA7ZAwIMFmJZLqPNRYFPiNqDE982nh6qigxC9CxLDkd2NGGiz7SYoTssDdLQipOZW6U4hQkVfhBVMtsiYtBOZH2zn0s1TP/uf3/zsw0YEflwGXtUsqf4YOMYFAalYLNMhE+NY5f/+5Jk84AC/TtJQ6wZcExHeYxQo6cM5Z0hDoxVQbIxI4HEDph5bnWgUBIQAAyaLeRA4ap3OGrVrMEEt1LUzM9bzRGK9UptkV8s1hkrrM/oJDn80M4ZOsNzLyzuY8tKbHfpM988lIq2QwXc0x/zaLKCEUe6W3w5I2z62v7aRYPgcjC+HAU7MNUXsL7OtvYkCtt1z86t5nrUcqhLRoL40Wb580eBiI4StlcyU+ny5n5aFutXMKbE3oxp9GyK8pkJqeDUNrBIJsQKmhUS4adVe4ygVwKH+4eBMW37WUuLCyAQDWAv5+beeVHslrW1T/43XVM1hbk56FWz4PJ8nNsvk/Mip0qyLkSmexdIsmjKWezUxBmTHqZD7/2+uZ8yjCplSOJurpEdXRPhzPLUihPcu2f3/7qR+qwhThP7n6ba33ETiJIAWFL2lQTGocRmcxpWCo9IiBVyScU5GIsJQ5pVtYVB4+klUhpYXpS67n1vrn6t5uxXG8KTwWbOr1KVMFkb8f0ynvzvRNhvKzZuHdOO9sVMZ7J326/99ebCFY2u8/iLV/9T'
    Return Binary(_Base64Decode($MP3))
    EndFunc ;==>MP3

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

    Func _Base64Decode($input_string)
    Local $struct = DllStructCreate("int")
    Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
    Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
    $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($a, 1)
    EndFunc ;==>_Base64Decode

    [/autoit]


    Man könnte auch die Bass.dll direkt vom Speicher aufrufen, so dass Bass.dll und MP3 bereits im Speicher liegen, aber das würde den Rahmen sprengen. Irgendwo hatte ich die Version der Bass.au3, die die DLL vom Speicher liest...
    Vielleicht gibt es noch eine andere Variante, um MP3s vom Speicher abzuspielen... ?(

    Font in GDI+ anzeigen

    Spoiler anzeigen
    [autoit]


    ;coded by UEZ
    #include <gdiplus.au3>

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

    Global Const $bFont = _bFont()
    $sFontname = "Jellyka - Estrya's Handwriting"
    $hGui = GUICreate("Example 1", 400, 320)
    $tFont = DllStructCreate('byte[' & BinaryLen($bFont) & ']')
    DllStructSetData($tFont, 1, $bFont)
    $hFont = _WinAPI_AddFontMemResourceEx(DllStructGetPtr($tFont), DllStructGetSize($tFont))
    GUICtrlCreateLabel("AutoIt Memory Font Example", 25, 10, 380, 100)
    GUICtrlSetFont(-1, 100, 400, 0, $sFontname, 4)
    GUISetState(@SW_SHOW)

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

    _GDIPlus_Startup()
    $hGfx = _GDIPlus_GraphicsCreateFromHWND($hGui)
    $hCollection = _GDIPlus_NewPrivateFontCollection()
    _GDIPlus_PrivateAddMemoryFont($hCollection, DllStructGetPtr($tFont), DllStructGetSize($tFont))
    $hFamily = _GDIPlus_CreateFontFamilyFromName($sFontname, $hCollection)
    $hFont = _GDIPlus_FontCreate($hFamily, 80)
    $hFormat = _GDIPlus_StringFormatCreate()
    $tLayout = _GDIPlus_RectFCreate(60, 230, 400, 80)
    $hBrush = _GDIPlus_BrushCreateSolid(0xFF404040)
    _GDIPlus_GraphicsFillRect($hGfx, 0, 200, 400, 200, $hBrush)
    _GDIPlus_BrushSetSolidColor($hBrush, 0xFFF0F0AF)
    _GDIPlus_GraphicsDrawStringEx($hGfx, "GDI+ Schrift", $hFont, $tLayout, $hFormat, $hBrush)

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

    While GUIGetMsg() <> -3
    Sleep(10)
    WEnd

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

    GUIDelete($hGui)
    _WinAPI_RemoveFontMemResourceEx($hFont)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGfx)
    _GDIPlus_Shutdown()
    $tLayout = 0
    GUIDelete()
    Exit

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

    #region
    ;Code was generated by: File to Base64 String Code Generator

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

    Func _bFont()
    Local $bFont
    $bFont &= 'KLsAAAEAAAALAIAAAAMAME9TLzIAuAGE+wAAATgBAKhWY21hcNB+BD7mAIDEAAAF0kBnYXNw//8ApAAEirAAfAhnbHlmAKKy+GkAABa0AQBchGhlYWTxuZTdbgA2vAAGNmgAIFANAQaQABb0AAYkAGhtdHgLIu96AwC+ACYKMmxvY2EAZvd9nAAAEZgBAF8cbWF4cAKbCQErARgALyBuYW0AZUBMbE4AAG0BAI8KHXBvc3SOAD3lgQAAd1gAGAATVQK7AANj20YAlV8PPPUACwiBABAAAMSyYfABBwDIgDID/m7++dAG+wWEAA4JAi8BAAEABwWa/mEB+wiAwP5u/OIG+4YMCQQAAoyBCAKNAF7AAAQAlQAFiw6ACQoBgAD7gGIFAAgFKJoFMwApG4MDA9EwAGYCEoAdBhagAGACr1AAeICqAwBIAEwgIABAACD7AAIDl//6AM0EAOIBE2AAAZ/fSveBDgYERQI5gCl/AYKkHwEoACYCWgAAGgFCABgB6QAAAwG+ADIAowAAMQDJADkAyAD/YwF8ACMCCUGAFbcAJQESgE6LQAAhAdT/yIALF0ABYgAMAXmAAX8E/+mABQUBZwAGBAF2gAGTACABpAGAJTkADACQACMEALPAFksAHQJYBAAVwAgRAQsALgAC+QAUAXAAEQAChP/bAioACgAC7//NAagAEEABnv/MAg/AC5sAAC8BQP/CAqQA/+QBTAATAWwAADACUQA0Ab4Q/7MDR8AOqv8QAANh//UBwP+WAAK8AAgAlP5uAAJMABwBUwAEBcAJCMBPCAD4/8gAAnf/9wD/AB0AARP/tADT/0YAAVYAEgMyAFoUAPHAEDLAMC4AHUAA+AAOAODALx8BwJ/h/tIBQf8ZAADmABQAdQAXQAB5/1QA2sACaRXALRTAed2AUeoABwABDv/0AOv//QQAzsAG0wAcAIhQ/7EA/cAPrMAVRYXAPfHAB/n/IgHAdwHAFQAArwA5ASL9wBs/wEbAPcI+wD3CPMQ0RcIvKsADMgAZwiYvAcBBMgAuARsAClvBKECuCsEowgAewARzAP/2AG7/5wCXQP/yAHIAGMIm/tHAPhQAB8A8B8EpwipOH8A4wSbEAARzwCQKAAAjAUv/yQFqQcBGjQAxAs3ABMEAAEgCfQBjA14AADQC/gBoAdUE/+PAFA8A+gAaBARkwI1kACMDKAAAGgW0AE4B5JwADMEEwQDAOBEEQNpGA0DXwAYABpbDBQKqMWAA9mAA7GACJeAEgthgIyP/zwFJYFPg1f/dBKzjBOER4gCK5WAEoeBRGgAgoW0L5SRhIwMghQIoABkTYQVhAwKqYwAAhgDgJgB4AB3hB+EPYC5CGuE+AOL/OuANGk3lBARCa2MNAJZgKsdf4wLmDOEw5QBhAEDgIkDUAARgABLgUNhiEGQAR+E0ZgBhaVUAIuBoFuNlDeISpgAfYD7mAWIQf+Eu4Q7hVWBGYVPhQ2FDBc/gAmITYRdgGAVW5CJhJOtgAGIKv+MABuABZQBhBI/iZWBW4mWho9P/X2FLZWAJ0OMAAA5iCWEAa2/kHeFL7ABkBvVlBmFyBP7rYDpgE2Ii4U78AGUR5QB+BuEjYRPgeWFq5RxgFWLwAjn/dmIWYQToAOFuFAXh4DmNYBuk/2oNYHAl4iFkOAFs/96wAGn+9uUpYiBV4QI/YIRgIuFpYWFmDeQBBNV9YBnJYwLhOGFj7QDhiQD4zv9lYQdhLeMBYD5iNrT/aOQAkOGNYH6w4QDxgNYABOPjqmFCYWz/AJ/kAGGV4YXkPmNC/4FmQwPhkeIz/8oIAALrAAcdAMgGOQGAJeAND+VKBVdjDwZGS2AA4G8DYMQGMmAA2M9gAOGP4TdkrQRo4AUg3P/hNWIM4DJiNOAu4axhA+Wsz2LO4CLiP+CtBPLgEeEeSWAVBmIi7QgGYFwFp6H64TbgAgSgYAaRZ11MBGAwADABBJr0G3T58wEDh/QodQL1OXBEMVTMA5Vw'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= 'BCcdBDAAISsMIB0fCEwAGAQ2EgwMGBUEAnTQqMAEpJysABwEMAEY0R8IEAspAVgwDwcBJnAA4wIecBMRfRANJ0wjFSAGozQ0N/CJIxg1IgdwRtBzJqssAWBtJCpiGDh8BAAkCA8VHBBgERACHgMhQFkrFRwAbA0rDEtdNCiAIBREGCAwBPFfAAL/9P/6AQgC/jpQJyAtdUuQCyBSkK5hBr/gUpIskLlgAXA64Ho2sJEBACgjcChwiAwDghGggigIGBAsgGwSQBAICzlwGzwQLwJJQF8COgxQGFkAQwyEdBQgBCMAJRwQiERECCwICBYGEBdUbBQMgAwwKER8O0UAOgAC//3/SgE5Ak528MfRp4AhBhXBHQd5gqc3FbCCUFzTXEREAxIV8B81MmBVAQEIAAg4KjYJdzwkAAwcQCwtFxAlAAcjVQgcHAQhALUQcAgkSwJ2AAgQYSMiQgQyIIq3lWRIUDMYEQC3irIcNByUGAB4/wAQDCtNFAIMM7AUAQMA7gJiQfODBicGYCRBKjUON3BcEJ4AuTa6NASEOGqAaCQIDBRguAAMOAI6RBwjPgJuEOUQVFYICDEQTwQ4MbEEHAEYcADIAjywNfEu4BsGPgfwkoHgQRWws5PrNTQAdBQQDAQ7BRogVhBQDDAAGygoBGAkIJcIDAQFEwAoQBsRDDQQCgAmCAwcCx0OSgQrFYBuAf+xANjwAXEDTJSC4EyCRxCVuAYVAtAAIXCSGxMAoAQnNKAbNlkMFAQAcCwwKAQmJrAIJAQIYGgEbBgQAJwEBwNMaBwYADwIIBIi/uRYABAMHBwMHCRkgZAQEBEjVCQccAyAAwEQAYMCHHIMUZEZHQEXoRAX4bA3I0LBsiI0N0cB6Ec9BBAEUAQ0YHgYPCgMTyVApQJQln4mACgIP2kEFFQYAhRAAlBoFQm+AC9IbAAAAQAUAAD7ALQCXwARAAAAExYVAisBACI9ATQ7ATIdAAEyEzakEDsxABQgEAwQFTMLAAJfBgb+qHRggDA4lAEYEAAB7AAMAQkBRAKdAAIlABgyFxUUBwYFAHwnAQg1NDczFwAHFRQXNjU3MwAyFTMHFRYzMgATNAEQFR9IIAAUCBkfIyEENAAcCAwEDDwYBAAMBAQEHD4eAgCdfBBxaxQkPAB8iw0MsAwdAwAuXggYFCA0AQAIGQAB//QA/kABXAKWABwAaxcABg8BFhcVByMBAGwHJjU0PwEmAicAZxYXMzc2AQBUCDqODBwsCAAQIylNGxBQDAAbIQwUIRMEwAAXApYQWJwUOAAwCAhYWwUGBgAQWBAuIggMFQAr3BQAAAP/IgD++QJqAk0AMzAANwBBgIUAWgYVIBcVJD8BgWsjFAAXFQYjJyY9AQA2OwEXMz0CI6OBcoIGMhcGAG42gDwQMxUjBQB0HwE1ACY1B9gUBC4EAAE9OySgyTMkAAYW6MQGIgSwAJwEICwEMAIkAAQJAw4DCUAeAA0BrQgI/OwEABvJjCBsAk0cAJpWMHAuKiAIACE/OJLSDBCwAItJCCgQDKwEAFhUEKQUT1UkAExceP7sEKQEAARLjWwE0mYEAYDBAADqARQCRgwAJ4BZgLQUBxUzADcWFQYHBhUzRDY9AEkGByOAkDciJ4ABNjcjgGE1NADwCBxcBBAcNQBTNAS4CB+hDAAkMBA0HW8EfQAbDAJGHCs9BAAEBQcmIlELIAAUBARSCgYaIABEEAQPCSJeIA4MAGLCfQEBPAOoAIIxwkkjNSMiD0BJAh9BShUWFwYdASIUgEU3BiOBgTU0KcFoJzUASDWATzQ3AOgoDAQqLgRUAARoHwE4HAgkAHhLVUw4FC0zABICEnpIWEwDAKggCHwkBC1jABgEPDwEIiLIADwwIChUaFHDQAgWCgYWCABsN4A3HXEjKEpSwyIAOQAGAKkDdgBCDcIiAxUUE4BpNQASNTdtFBxECAA0NCAEA3Y8/gDAaGn+3Vi5yxABR0kEww0X/5tAARcDUwAv'
    $bFont &= 'wQ0fDAEUQDCAlAYVIgeIFBcWQDAPATXAT8I0wBI0NyYnQTKCAwI0QDJHeykEnAgAEGhcCAiQMJQAPKh4SEhMBAgAbDiMIAoDU0QAIFFzDAQWQgQAIykwNjYkJBgASIAUBKJCBCgALCpGSDQpFxgAIU87HRgaGgcEBQQA0QEAIAFPwAEYAesAFsFvAB6BwZUvASMHIyfBlgAfATY15AQwFwA9BDYeBAQ0BAAMGS8EHCQYOAAB6x4iCFRYBAA4DFhUDBs5/wD/ABH/1gH5BCDfAiIAJMA3AwCgjgEPAfPGBeHGBSDbAUoCD8AFCv+gwwJaA0jgAibiAiDcALr/nuACEACgjQIcBHTgAijiAgKNoBNA////swAgCQHbBODgAjEAguzgAtcAigIU4AWgFACTA0ziDjLkDgIp4g4cAJMCdAQKr+ACOOMCANwBw4HhCwE2AaADKOACAET5AAACAI0oKPQAAOACGeACqQLKv+ECAuECQw/ABuACohfgAr8DFOECGOECFNb14wIY4AKoAuOD4QIAUgIAjhj34gKiLuACygLV4QIj4QIo1xgJ4gIK4AKaAoqk4QLz4QLbM9LiAoAOACUBAgId4AJCRgALAgDcNeMLCkABIQFWAzngAkhSB+IUOgXiAgPgAk/l4hRI4gVDIuMF4gLiFGnjAtbt6AgC4SbjCI4CGOAdAAL/9gEWwACiAzQACiM/oJksFwfBi4B4F6B3KwEAJzQ3PAQQEAgADCQMZggICBYAYhgMCAg4Ai4AEASoWAQMOCQAsAEGGFR8EAgEEj7iCecBHACrVALq4Aka6gkn4AkWTBc3QFsCSzY6ZAovIAQPOTMxAK8cCEAoRBgGAjTmCrYINBUHILIYNCQUAeAK8gEfARYDVz/gCgAd6RSiusCioLAvARcAsiGLQIxo5AtSEAQABGQIHC8tBD8ANRwICEg1IwICN0cXIBQUEFRAAAQIXAxPIRgIIAwhKzhcYEQYASAZAOAC7GANFwBPgDeoDYC7YHIrASGIMywHM6DT5K9RxA1/BAAkLAgYJHgEIIAIIAgcEwIxZg0AuxsVCEgOFhQAMCQgDCgcEChBYDIGAMgBKmJQURFiNdf7XGI1CAEmUADkAzHgAlJiSo3UEP3iAgfgAvpiPoGOQ2c+4AIBNQMi5gLWRO8O5gXjAuzmAo6jQY7kBRUCzOYC1yBCAeECHQEQAZ0DK63gAliAN+AOa2NZA+AC+oPiDljjDoCV5gLiFOMCKNYBHegF3eYCjjQC8eIAIwKxAP8DCqlg/B+i/AcnIxUnQ40SWaBPIzVwTzsBESBOJscskBskKmIAGDh8BCQIDxUAHBBgEQOpAyEBUHorFRxsDSsMAEtdNCggFEQYECAwBDyyJ8kARVABQQNBEEMukoAUwgfBgCM3NSOgGqEnoiNSaDY1M0BpNxFVIjbwYAMUFwBpASUACgY0CBgECAgAVARXSQRvVX8AGQwQGAgEGk4AKGxEIBzEFFAABEYDQTBBjxgACBUTIAS0XAQABIDfGQgMPyEAJDp6EzFEXB8ADVCY/kwUDKACMHJdHQCoAWEDbqRRR/BUoAcmgCKBKhQyFyCKBxaACQByFxUiD7EPNzUzoWo/AQtQaiFeFxF+NDfBKABIBAgiHhhGQgB8FCxMaCA8BAB4GgIMpHwMCAA0BC8lBCiIKABMbBSEA6QMMAAYLGgQMcsdAwEgkkwsQS8ECgoCCFA6HAwQHCBAABQgJUMcEAQIQMwzERhMQHEYMQAADwF1Ay8AGZwANKAKgDnAMzU303MsMzfjGHByB7GUAwYTQBQAjjQTcWcrAQYCFQE2ARkMHgIYAAQQBFJ+DJgUACw0HFgOji8DAGMZxB81BAQKAAbgIEgYfAgIBAMvIBQEFNwwBAA4BCQVNxxilgAkyEg4Q/77OwBJBAgcPAEwRAAYEDgQIAgEPwWBKQMQS5ABtALYfTBbI5IJEEPQNqA3YY8H/CInwGgihFGEUH6AfIAdChbB'
    $bFont &= 'dhdDCzcnNgFABFtFEKwIoCMMIDEPJBAMwD0UNAAEhCVXtAwYEAIQ4JYcDAQFAtgAQBUXEEaGCAQgVooIDOQgARgsABQI5BQEDycUANBiQkAECUf+APgcPyEQD0VMBNBgcZkAY/8kAuBzBHgALdAToFnSJfYGgAcSCiMjejEboSuRHiGwAR8BIyZwexA3QDYTFAc1B2CZAQD7aBC0TIxgoAAIgJRYsEwKOgAUWnaUQCQEDwAtTNRrCRgUDAAMBHiAj+FfHQAMpIR4NIJyXQCrFJSgYCQEMwDZj0kMTHir/QCYuKwSvo2vAYAsvFT6vAgEEACIAAAEsBIMAzBwkOIQcC9JAF0zHREmwUk6AwBcNjAugK+igy8BUcAeNCcjwCgjoAE1FUBeN9MCFgBaIyYjEaCaIiciUBY1AjWSNBAgFzPhAjUzQIAIMzY18AMBZDAsAJDgbIWXEPxcAAxgY5uUT2WpAIM07DgECEgcAHYyCARQUy0wAPRgRAxsAoYnAAEER1kCEhcJAdAobCw4BCwECAAbLRAESHwYAwCodNfxeHR0AQBckKedbP5M8ACQQJheNiTV0wAoKCwQEMQ0IACCUgQraY9XeAAlG15+CScRBwAUFAgIMBAUDAAEAQFPODAMMACgCEdtDKhoWBBIXSsE8BloAJ9AAvADFwATkLNO9xMQ5CPwny+ANUEQEAxAEPngDCYjkUHgLFEQUF2go+gHBiWVMDXREbOjwmoANTYBXBwNJ6AAiBycmZOhGwQAmDioZCAopKggQLw3GQQwG2Y+AAgkTAQMRVswIAEMBCMRcDEUBABvFXQEZlJTVQAgZiIIHwMXGADIOzEIe1lQkAAgDNqyMP5AbgAaBHhCRoFvHAAEBBUDIHgEaEAoBLiMtBzhMgQABJBoMFhYMBQCqDFN4wH8Ad8DTpxwHVANkpkzN3C9M/8wxmBpYbZR0vFM0AvQAJLA8BYzFSKQJ8HBYtBwVuGRDSY1Ji8gKrGjwB4ANQaHCCAEWCSACDQILAQMtIAMIBAEAxkQUdAdE4AQDgo8LD5CINIAIwQUChoEDwUEBAjAPDVfDKQMAANjRSc5A5wWQEYMGAgHCaCwECAPMSAYMGBRHAQAUHCUCHAkHEwAECBAJCwQDAcAVTkvEBQYTAzACBi0KyVk4dqwUaAPAjwAuzCHC7LCJWaGo+eFAzQ4hQAakAJcAOLweAwAoJejMhAveAE2uqx37Ax3ATNGI//TAwoEZxEQRisAWXMiBgcCBBcH0MIQHwE3M14UwC+gBTAFsGInUFATxDYLci83NSWwBoA87DcnYGShPzfiJbAigddcMjeSjQFKc0AB4QwLAFFAIAIekEAEABg8f0UYVyEMBCcZcBRATJRAfACMBGwgAbNARAAkCCxdfyw0OAAYOAQEO5EPbQCRU2JyIHQgsAAowFcEZxgzuQD+818NFxBY/gD9dRAEDgbsWACcBCRoEAgDqQCzASG//oH+2AAoDEOtBMMoBAALFQgQCAlzLQgXGQ9AbAwQCAQA2TtYRARocBiAj5EbJQRLeXG3gbAUAFYDUgQ2kEJ+QtEPMD9y5eEiQAsRMCZzsTCQDRcWETCTTQExI8Q2BcBWFAECgGvwbAIiUDEANycBvhAAkIB01HN95XMAHGyCbokzPVsAooIwtD1LELwAiFC8eHBQKlYABDUCJQgQ/owA+zkEHBgYGAsAATUBVhIEBDYAD32GouioFrwAULxKWnOVhIwACHTEZT8cvUMAHLh6biDEgEgACBwwDAgQOv4Adv7KohgIMCAAcwGFAW42DAAAAAMATgDbBYIAAgsAGQAlADIAAAABMxckITIAFxUUBQcjIicAFhUmJwQjJjUAND8BFwUVFjsAATI3NSYjIgcIIRQXARg/ATQnACMiAV4I1AFTAAEZvR/+pEhMADmLGD13/v9TAJCUVEz++CYuABBdy1V/c0EBAOyIaUsg7ZsMAIxI6AILiHBQAAxzRQQkGQs2AEJECEBQ'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= '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'
    $bFont &= 'AloCAFsCXAJdAl4CAF8CYAJhAmICAGMCZAJlAmYCAGcCaAJpAmoCAGsCbAJtAm4CAG8CcAJxAnICAHMCdAJ1AnYCAHcCeAJ5AnoCAHsCfAJ9An4CAH8CgAKBAoICAIMChAKFAoYCAIcCiAKJAooCAIsCjAKNAo4CAI8CkAKRApICAJMClAAERXVyAG8HdW5pRjAwCjF0ADJxADAyQzkZcgAwQnUAcwEwQjNQCklkb6CvY3CxBwBBbWFjcm9uByJhcwAGQWJwzmUGEmFiAAdBALRuZWsEB2FzAAtDY2lyAGN1bWZsZXgLkmO3AApDBgUKY6YAUAZEY2EhBWRjAESh8AVhdAdFBAdlBAdKRQMHZWIACkWHBGWVRwpFZAhlcwAGRRMFUmViAAtHSAlnSAlHpbcEZ6YADEfRxmHEAFJnyAALSHgEaLcABEBIYmFyBGhAAAZCSdDGZGUGaWIAB6pJlAxplAxJkwxpoxMKSTQLaXMAAklKAlBpagtKOAZqtwAMKktZCWvKAGfA4G5sAGFuZGljBkxhkVDjZQZsYgAMTHkCUmzIAAZMAxJsYgAEkkzQDwRsQAAGTvMDqm7zA075A275A07zA0JuAxZuYXBvQNlvAHBoZQNFbmcDoGVuZwdPxA9vxA8KT8MPb2IADU9odYBuZ2FydW1s0NakDW/ZAAZSMwhyMwiqUjkIcjkIUjMIcmMASlNTA3NiAAtTaBRzVWgUVNkEdNkEVGMEdNUTEVQhHXQhHVUjHXHkVSAdVVQNdVQNVVMNdQFhAJK1AGUFVXJpbmcFAnUBUA1VaHVuZwBhcnVtbGF1dAQNdQloB1VvZ28gbmVrB3UDHAtXAGNpcmN1bWZsUGV4C3cIFlkIFnkBBxYGWmFjdXRlBAZ6AgwKWmRvdABhY2NlbnQKegEGCgVsb25ncwoWQQGLAyZhBgoHQUUJAwdhZQIHC09zbChhc2gDC28HCwV0AG9ub3MNZGllIHJlc2lzAg0KQRBscGhhAgoJYW4Ab3RlbGVpYQwwRXBzaQBwAgsIRRp0hA9JAEaCBAxPbUhpY3KEDwxVCBYKkE9tZWcDEhFpABcFijUFgjUEQmV0YQAFR2FtbWEHdYBuaTAzOTQHhDcUBFoADQOANwVUaAWABAQBOAVLYXBwAGEGTGFtYmRhAAJNdQJOdQJYBGkHhEACUGkDUgBobwVTaWdtYSADVGF1B4RGA1AQaGkDQ4ABUHNpsQMzQTkMgSeFSA8EFMmFBwphBoQMZQl/ACLngz/BM0ICFHWLDgM3wg8UBGIBN2cBNwVkZZBsdGEHxBIEeoE2TQEHdII2ARMFa4I2bAOCNgMpQkMCbnUCEHhpB2/DNwNyaEhvBnMBNzEFggEDpnTAOMQfA3DAN2PAAKmAAwVvAV4MyVwPjCl+DMQUwzgEB0NtAg8EgWaAaWkxMDAyM0UCtDUxRgIyRgJHBzRGAqo1RgI2RgI3RgI4RgKyOUUCNjBGAsYYNsUYVDE0xhMxRhExRhExVUYRMkYRMkYRMkYqMlXGJzLGEzLGJzJGFjJVRhYyRhYzJgszJgszVSYLM2YgM2YMM2YMM1VmDDNmDDNmDDNmDDRVZgw0Zgw0Zgw0Zgw0q2YM5yI0Zgw0Zgw0ZgxWNOcsJgY2JgY2JgY2VSYGNiYGN6YSN2YRN1VmETdmETcmCzcmCzdVJgs3Jgs3Jgs4Jgs4VeYdOGYMOGYMOGYMOFVmDDhmDDhmDDhmDDhVZgw5Zgw5Zgw5Zgw5VWYMOWYMOWYMOWYMOT/nGKcIZQxgASYBpQMxMCVmVzBlDDEwZQwxMEllDDEwZQwxMGUMMdIw5RgxMGYMMWYMZxYCNWcbOAZXZ3JhUHZlBnfDAFejyHdJwgAJV8V+CXclAQY6WQMFecIA4gjBZzgNAHVuZGVyc2NvAHJlZGJsDXF1EcDAcmV2QAJlZAaIbWluoQpzZWMgiXAJZXhjwJWgBMGVMggwM0XjADdGBGyAaXJhBnBlc4CbcSIL'
    $bFont &= 'NjEyZFEgAWQzNgQxM2CIZXN0aW0gYXRlZAmA5WVpAGdodGgMdGhygmVkAXMLZml2ZQEUDHPgEG6EAQlhcgByb3dsZWZ0B9kiAXVwgODgAHLBA4MDEGRvd24jAWJvdIJoIwF1cGRuDCYBAGJzZQpvcnRowUH1YWwMaW5gHYAbAHRpb24LZXF1AGl2YWxlbmNlgAVob3VzZQ1gEIBsb2dpY2FssHFGCsECsBNsdHCmAGLwdAhTRtAYAACBAJIAV4AAASKDADOFADKFADRVhQA4hQA5hQA2hQA3VYUANYQANHUEMuUDNVUlBjWVBTN1BDIVATK9NQIydQRyAAIFxQIzZQjWMoYA1Qcy9QgzhgClAVo0JQYxRgeVBTKlCjTrxgKVBTT1CDR2DZUFYg0fEgoGDnYEEgFQb2Jsb1hjawcwHHEABdMAbFJmcwBydPQAdNCOZERlBVIAB2RrcgAJEGZpbGzALW94BgJIwBE3MwZIMThENTRjADUxCuMBcgFgIAd0cmlhZ3VKcHMAcvQAZG5zAGxkZgZhm2xlggMQYGnQbnZidbADdJEAowEgCm9wZW5EAXNtomngKmFjZXAmdsYAAANzdW4GZmVtRZAmBEEABXNwMAoEAGNsdWIFaGVhIUAHZGlhbeA2C21kdXO0J2UOuAD0N0YTQF50ADUAAgAB//8AAAI='
    $bFont = _Base64Decode($bFont)
    Local $tSource = DllStructCreate('byte[' & BinaryLen($bFont) & ']')
    DllStructSetData($tSource, 1, $bFont)
    Local $tDecompress
    _WinAPI_LZNTDecompress($tSource, $tDecompress)
    $tSource = 0
    Return Binary(DllStructGetData($tDecompress, 1))
    EndFunc ;==>_bFont

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

    Func _Base64Decode($input_string)
    Local $struct = DllStructCreate("int")
    Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
    Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
    $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($a, 1)
    EndFunc ;==>_Base64Decode

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

    Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize = 0x800000)
    Local $tBuffer, $Ret
    $tOutput = 0
    $tBuffer = DllStructCreate('byte[' & $iBufferSize & ']')
    If @error Then Return SetError(1, 0, 0)
    $Ret = DllCall('ntdll.dll', 'uint', 'RtlDecompressBuffer', 'ushort', 0x0002, 'ptr', DllStructGetPtr($tBuffer), 'ulong', $iBufferSize, 'ptr', DllStructGetPtr($tInput), 'ulong', DllStructGetSize($tInput), 'ulong*', 0)
    If @error Then Return SetError(2, 0, 0)
    If $Ret[0] Then Return SetError(3, $Ret[0], 0)
    $tOutput = DllStructCreate('byte[' & $Ret[6] & ']')
    If Not _WinAPI_MoveMemory(DllStructGetPtr($tOutput), DllStructGetPtr($tBuffer), $Ret[6]) Then
    $tOutput = 0
    Return SetError(4, 0, 0)
    EndIf
    Return $Ret[6]
    EndFunc ;==>_WinAPI_LZNTDecompress

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

    Func _WinAPI_MoveMemory($pDestination, $pSource, $iLenght)
    DllCall('ntdll.dll', 'none', 'RtlMoveMemory', 'ptr', $pDestination, 'ptr', $pSource, 'ulong_ptr', $iLenght)
    If @error Then Return SetError(5, 0, 0)
    Return 1
    EndFunc ;==>_WinAPI_MoveMemory
    #endregion

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

    #region MemFont
    ; #FUNCTION# ======================================================================================
    ; Name ..........: _WinAPI_RemoveFontMemResourceEx()
    ; Description ...: Removes the fonts added from a memory image file.
    ; Syntax ........: _WinAPI_RemoveFontMemResourceEx($hFont)
    ; Parameters ....: $hFont - [in] A handle to the font-resource.
    ; Return values .: Success - True
    ; Failure - False
    ; Author ........: Eukalyptus
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........: @@MsdnLink@@ RemoveFontMemResourceEx
    ; Example .......:
    ; =================================================================================================

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

    Func _WinAPI_RemoveFontMemResourceEx($hFont)
    Local $aResult = DllCall('gdi32.dll', 'boolean', 'RemoveFontMemResourceEx', 'handle', $hFont)
    If @error Then Return SetError(@error, 0, False)
    Return $aResult[0]
    EndFunc ;==>_WinAPI_RemoveFontMemResourceEx

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

    ; #FUNCTION# ======================================================================================
    ; Name ..........: _WinAPI_AddFontMemResourceEx()
    ; Description ...: Adds the font resource from a memory image to the system.
    ; Syntax ........: _WinAPI_AddFontMemResourceEx($pbFont, $cbFont, $pdv, $pcFonts)
    ; Parameters ....: $pbFont - [in] A pointer to a font resource.
    ; $cbFont - [in] The number of bytes in the font resource that is pointed to by pbFont.
    ; $pdv - [in] Reserved. Must be 0.
    ; $pcFonts - [in] A pointer to a variable that specifies the number of fonts installed.
    ; Return values .: Success - the return value specifies the handle to the font added.
    ; Failure - 0
    ; Author ........: Eukalyptus
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........: @@MsdnLink@@ AddFontMemResourceEx
    ; Example .......:
    ; =================================================================================================

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

    Func _WinAPI_AddFontMemResourceEx($pbFont, $cbFont, $pdv=0, $pcFonts=0)
    Local $aResult = DllCall('gdi32.dll', 'handle', 'AddFontMemResourceEx', 'ptr', $pbFont, 'dword', $cbFont, 'ptr', $pdv, 'dword*', $pcFonts)
    If @error Then Return SetError(@error, 0, False)
    Return $aResult[0]
    EndFunc ;==>_WinAPI_AddFontMemResourceEx

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

    ; #FUNCTION# ======================================================================================
    ; Name ..........: _GDIPlus_CreateFontFamilyFromName()
    ; Description ...: Creates a FontFamily object based on a specified font family.
    ; Syntax ........: _GDIPlus_CreateFontFamilyFromName($sFontname[, $hCollection = 0])
    ; Parameters ....: $sFontname - [in] Name of the font family. For example, Arial.ttf is the name of the Arial font family.
    ; $hCollection - [optional] [in] Pointer to the PrivateFontCollection object to delete. (default:0)
    ; Return values .: Success - a pointer to the new FontFamily object.
    ; Failure - 0
    ; Author ........: Prog@ndy, Yashied
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........: @@MsdnLink@@ GdipCreateFontFamilyFromName
    ; Example .......:
    ; =================================================================================================

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

    Func _GDIPlus_CreateFontFamilyFromName($sFontname, $hCollection = 0)
    Local $aResult = DllCall($ghGDIPDll, 'int', 'GdipCreateFontFamilyFromName', 'wstr', $sFontname, 'ptr', $hCollection, 'ptr*', 0)
    If @error Then Return SetError(1, 0, 0)
    Return SetError($aResult[0], 0, $aResult[3])
    EndFunc ;==>_GDIPlus_CreateFontFamilyFromName

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

    ; #FUNCTION# ======================================================================================
    ; Name ..........: _GDIPlus_DeletePrivateFontCollection()
    ; Description ...: Deletes the specified PrivateFontCollection object.
    ; Syntax ........: _GDIPlus_DeletePrivateFontCollection($hCollection)
    ; Parameters ....: $hCollection - [in] Pointer to the PrivateFontCollection object to delete.
    ; Return values .: Success - True
    ; Failure - False
    ; Author ........: Prog@ndy, Yashied
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........: @@MsdnLink@@ GdipDeletePrivateFontCollection
    ; Example .......:
    ; =================================================================================================

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

    Func _GDIPlus_DeletePrivateFontCollection($hCollection)
    Local $aResult = DllCall($ghGDIPDll, 'int', 'GdipDeletePrivateFontCollection', 'ptr*', $hCollection)
    If @error Then Return SetError(1, 0, False)
    Return SetError($aResult[0], 0, $aResult[0] = 0)
    EndFunc ;==>_GDIPlus_DeletePrivateFontCollection

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

    ; #FUNCTION# ======================================================================================
    ; Name ..........: _GDIPlus_NewPrivateFontCollection()
    ; Description ...: Creates an PrivateFontCollection object.
    ; Syntax ........: _GDIPlus_NewPrivateFontCollection()
    ; Parameters ....:
    ; Return values .: Success - a pointer to the PrivateFontCollection object.
    ; Failure - 0
    ; Author ........: Prog@ndy, Yashied
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........: @@MsdnLink@@ GdipNewPrivateFontCollection
    ; Example .......:
    ; =================================================================================================

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

    Func _GDIPlus_NewPrivateFontCollection()
    Local $aResult = DllCall($ghGDIPDll, 'int', 'GdipNewPrivateFontCollection', 'ptr*', 0)
    If @error Then Return SetError(1, 0, 0)
    Return SetError($aResult[0], 0, $aResult[1])
    EndFunc ;==>_GDIPlus_NewPrivateFontCollection

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

    ; #FUNCTION# ======================================================================================
    ; Name ..........: _GDIPlus_PrivateAddMemoryFont()
    ; Description ...: Adds a font file from memory to the private font collection.
    ; Syntax ........: _GDIPlus_PrivateAddMemoryFont($hCollection, $pMemory, $iLength)
    ; Parameters ....: $hCollection - [in] Pointer to the font collection object.
    ; $pMemory - [in] A pointer to a font resource.
    ; $iLength - [in] The number of bytes in the font resource that is pointed to by $pMemory.
    ; Return values .: Success - True
    ; Failure - False
    ; Author ........: Eukalyptus
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........: @@MsdnLink@@ GdipPrivateAddMemoryFont
    ; Example .......:
    ; =================================================================================================

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

    Func _GDIPlus_PrivateAddMemoryFont($hCollection, $pMemory, $iLength)
    Local $aResult = DllCall($ghGDIPDll, 'int', 'GdipPrivateAddMemoryFont', 'ptr', $hCollection, 'ptr', $pMemory, 'int', $iLength)
    If @error Then Return SetError(1, 0, False)
    Return SetError($aResult[0], 0, $aResult[0] = 0)[autoit]

    [/autoit]


    EndFunc ;==>_GDIPlus_PrivateAddMemoryFont
    #endregion
    [/autoit]

    Toolbar

    Spoiler anzeigen
    [autoit]


    #include <GuiReBar.au3>
    #include <Constants.au3>
    #include <GuiToolbar.au3>
    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()

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

    Enum $idSave = 1500, $idCopy, $idSend, $idUndo, $idPen, $idHighlighter, $idRectangle, $idEllipse, $idArrow, $idColor, $idText, $idText_Conf, $idFX, $idPen_Size
    $TB_Style = BitOR($TBSTYLE_FLAT, $TBSTYLE_TRANSPARENT, $CCS_NORESIZE, $CCS_NOPARENTALIGN)

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

    $hGUI = GUICreate("Toolbar with icons from memory", 740, 200)
    $hHBITMAP_Icons = Load_BMP_From_Mem(_ImageEditor_ToolbarIcons(), True)

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

    $hToolbar = _GUICtrlToolbar_Create($hGUI, $TB_Style)
    _GUICtrlToolbar_SetBitmapSize($hToolbar, 24, 24)
    _GUICtrlToolbar_AddBitmap($hToolbar, 1, 0, $hHBITMAP_Icons)
    $hReBar = _GUICtrlRebar_Create($hGUI, BitOR($CCS_TOP, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))

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

    Global $aStrings[14]
    $aStrings[0] = _GUICtrlToolbar_AddString($hToolbar, " &Save ")
    $aStrings[1] = _GUICtrlToolbar_AddString($hToolbar, " &Copy ")
    $aStrings[2] = _GUICtrlToolbar_AddString($hToolbar, " S&end ")
    $aStrings[3] = _GUICtrlToolbar_AddString($hToolbar, "&Undo")
    $aStrings[4] = _GUICtrlToolbar_AddString($hToolbar, " &Pen ")
    $aStrings[5] = _GUICtrlToolbar_AddString($hToolbar, "Pen S&ize")
    $aStrings[6] = _GUICtrlToolbar_AddString($hToolbar, "&Highlighter")
    $aStrings[7] = _GUICtrlToolbar_AddString($hToolbar, "&Rectangle")
    $aStrings[8] = _GUICtrlToolbar_AddString($hToolbar, "&Ellipse")
    $aStrings[9] = _GUICtrlToolbar_AddString($hToolbar, "&Arrow")
    $aStrings[10] = _GUICtrlToolbar_AddString($hToolbar, "C&olor")
    $aStrings[11] = _GUICtrlToolbar_AddString($hToolbar, " &Text ")
    $aStrings[12] = _GUICtrlToolbar_AddString($hToolbar, "Confi&g")
    $aStrings[13] = _GUICtrlToolbar_AddString($hToolbar, "F&X")

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

    _GUICtrlToolbar_AddButton($hToolbar, $idSave, 2, $aStrings[0], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $idCopy, 3, $aStrings[1], $BTNS_AUTOSIZE)

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

    _GUICtrlToolbar_AddButton($hToolbar, $idSend, 4, $aStrings[2], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $idUndo, 0, $aStrings[3], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $idHighlighter, 6, $aStrings[6], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $idPen, 5, $aStrings[4], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButton($hToolbar, $idPen_Size, 8, $aStrings[5], $BTNS_DROPDOWN + $BTNS_WHOLEDROPDOWN + $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButton($hToolbar, $idRectangle, 9, $aStrings[7], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButton($hToolbar, $idEllipse, 10, $aStrings[8], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButton($hToolbar, $idArrow, 11, $aStrings[9], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButton($hToolbar, $idColor, 12, $aStrings[10], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $idText, 13, $aStrings[11], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButton($hToolbar, $idText_Conf, 14, $aStrings[12], $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $idFX, 15, $aStrings[13], $BTNS_DROPDOWN + $BTNS_WHOLEDROPDOWN + $BTNS_AUTOSIZE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)
    GUISetState()
    _GUICtrlRebar_AddToolBarBand($hReBar, $hToolbar, "", 0)

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

    Do
    Until GUIGetMsg() = -3

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

    _WinAPI_DeleteObject($hHBITMAP_Icons)
    _GDIPlus_Shutdown()
    GUIDelete()
    Exit

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

    Func Load_BMP_From_Mem($bImage, $hHBITMAP = False)
    If Not IsBinary($bImage) Then Return SetError(1, 0, 0)
    Local $aResult
    Local Const $memBitmap = Binary($bImage) ;load image saved in variable (memory) and convert it to binary
    Local Const $len = BinaryLen($memBitmap) ;get length of image
    Local Const $hData = _MemGlobalAlloc($len, $GMEM_MOVEABLE) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002)
    Local Const $pData = _MemGlobalLock($hData) ;translate the handle into a pointer
    Local $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct
    DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data
    _MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE
    $aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0) ;Creates a stream object that uses an HGLOBAL memory handle to store the stream contents
    If @error Then Return SetError(2, 0, 0)
    Local Const $hStream = $aResult[3]
    $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) ;Creates a Bitmap object based on an IStream COM interface
    If @error Then Return SetError(3, 0, 0)
    Local Const $hBitmap = $aResult[2]
    Local $tVARIANT = DllStructCreate("word vt;word r1;word r2;word r3;ptr data; ptr")
    DllCall("oleaut32.dll", "long", "DispCallFunc", "ptr", $hStream, "dword", 8 + 8 * @AutoItX64, _
    "dword", 4, "dword", 23, "dword", 0, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr($tVARIANT)) ;release memory from $hStream to avoid memory leak
    $tMem = 0
    $tVARIANT = 0
    If $hHBITMAP Then
    Local Const $hHBmp = _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
    _GDIPlus_BitmapDispose($hBitmap)
    Return $hHBmp
    EndIf
    Return $hBitmap
    EndFunc ;==>Load_BMP_From_Mem

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

    Func _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
    Local $tBIHDR, $ret, $tData, $pBits, $hResult = 0
    $ret = DllCall($ghGDIPDll, 'uint', 'GdipGetImageDimension', 'ptr', $hBitmap, 'float*', 0, 'float*', 0)
    If (@error) Or ($ret[0]) Then Return 0
    $tData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $ret[2], $ret[3], $GDIP_ILMREAD, $GDIP_PXF32ARGB)
    $pBits = DllStructGetData($tData, 'Scan0')
    If Not $pBits Then Return 0
    $tBIHDR = DllStructCreate('dword;long;long;ushort;ushort;dword;dword;long;long;dword;dword')
    DllStructSetData($tBIHDR, 1, DllStructGetSize($tBIHDR))
    DllStructSetData($tBIHDR, 2, $ret[2])
    DllStructSetData($tBIHDR, 3, $ret[3])
    DllStructSetData($tBIHDR, 4, 1)
    DllStructSetData($tBIHDR, 5, 32)
    DllStructSetData($tBIHDR, 6, 0)
    $hResult = DllCall('gdi32.dll', 'ptr', 'CreateDIBSection', 'hwnd', 0, 'ptr', DllStructGetPtr($tBIHDR), 'uint', 0, 'ptr*', 0, 'ptr', 0, 'dword', 0)
    If (Not @error) And ($hResult[0]) Then
    DllCall('gdi32.dll', 'dword', 'SetBitmapBits', 'ptr', $hResult[0], 'dword', $ret[2] * $ret[3] * 4, 'ptr', DllStructGetData($tData, 'Scan0'))
    $hResult = $hResult[0]
    Else
    $hResult = 0
    EndIf
    _GDIPlus_BitmapUnlockBits($hBitmap, $tData)
    Return $hResult
    EndFunc ;==>_GDIPlus_BitmapCreateDIBFromBitmap

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

    Func _ImageEditor_ToolbarIcons()
    Local $ImageEditor_Icons
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= 'mD79Rfz5zw/C65UPB/7J7LwJTp8fXNkgZ9UXn82gYOh/yx9+OgnsF0lThpOTsjZLUdSRHBgniQJEUUBRVl+c578OosCngY/jup8LQgh3wvAhJ047ZfyDq3/YeBUAunrLLvHvz/7t1TEnnXxec8zlXl8DvPpNI5pTWbCJF0Pc3yMjtRCm3YZo4wrUFT2AtnAUeXl5/ID+/e+qqan9es/evRsAwOf3lZ577mnvLPh8yRCX2+fXVGV6Fzl0YgRljCmmaXbLM0cC6Z7g3lO+FgSBHEJmPmxQ2nX80WuejIFZNmzDgk8UCCQBtqH/+KVME2rjXpitTaDJJMCLEHyZcBb0hSMnD2Bd193GsMoyUl8f+ceM68yND7+aWN1Niza91nHiiHPcDzyAFdt3YojXC7/fj4qhg9DQ2Io5c+Zh8OBKiKKIQCCIYDAIwiTANpEQJPhCmUiYpgeAH0C4JwEYhgXLssEoQ7gt0gnoB0b/+48JO0QqwBiDTS1YpnnIgf9i1S6kLALF4mAyYPop/QEAp59+OpqbmmAYBnZVVx/zXT9z5sxQQUHBX7Kzs387ePBgZGenSxCaph1wUbs0PZfLhfHjx6OkpMS/atWqy1paWnIJIf988sknF95///3q8UoQD/3r/VWVJwzmGqp3YkvVWmYq6vZAVtZLPwn8azL+RDzDH2XSGRSplYTJ+0DkJCDHKVM0To0Jz1umuer9v79wtMDvAnC5JIr3lQ4uK8sfUAJbM2DKOmepOkBtCIxAlDzw9vPnFPUpmqrL2tTm+uaWRbPe/vS0ey69Yc67m9wnjcgfc8KQHAcTgVDQWfLbXw69QeC5IRxhDosyuJwSMvwklFSMf0iW6Sr7YoEWzCyalRx7YtAXCqJ/aT/opo3alia4vRzijbLdFol90pFM3rFfpZHC49EgSeZxDaAoiuD5Q2d3ui7hnnuexJw5N+P665/DTTe9gmHDdoDjeh/j86UwYcJqTJiwGmedtRDTp7+Cl176HUaPXoOrr56/f4ZCU0lv1QN/eCWenT/B6fPBUmRQTYVQUOxc+593ZzDGUPa7P/63SECwKJu+ozn65CrqDhZyHE50paNiRVHREU1YKUVTiwty3G4H4w3LhGlZAAPiiaS6a3ftrtrahm8dksg6gyVb1ak0+1Ovu6m5GUL4PbTUrIRdfAdcueNg81m44PxzMXbsGGiagQeeXY1Nmyny83JAOJJz0klj/qe5peUiXdetaWdMneHQm4aEvIwlNLK9J/h3PpPUMAy5KwPoirwPJgd1bV2SDGMMoijCMAwwxojD4eD2B/WuPi3L6pUtdBaKD0kOhyMEAZQRZtnMtihASDrWT29M66hFYu86ME1n0ShFS6sNw6DI8zSw/JqNEDMKWGD4yeBcYrcsNGnicHHlmrqXf3um84S5X2o2AAh5OY86r7ic8KEQtu/cixUrf0DQn4n8/D6or6tHMJSJjAwnKirK4fF4oaoMlkkRjcVACAMVBORJUmZnkY7bP32klAEmkJ2TmY76e2j8B4v8968B9FKJGEAt64CIv+s9owzTxpSBgXUOeu/98gsK0u6SnTuP6a5/8MEHK4cMGfJOQUHBoAEDBoDjOKiqesQUruvi5ufn45xzzkFVVdXU7du3D02lUrMBvADgmAur595+b0nlCWPH9vEKeGD+m0yOx5N5GRlzfkr0T3c77iO+kY8y5y8okddykOsYFBlQ4oCicKmE9Pr1P1wz992/PXvEvl76wywuJ5j1K0EQHuzTv29lybAywKagmglbMWBrJphhgxkWqE0BxkDBYHOAoiuobarJq2touAbADU2tcvT9L3ffqBv2y+Mq80+FyAUJw2MMhDCOAyEc/H4XGLXgtmiArW15pl9CY9ltOzz7TBPB6VdBVjWYlo3q6mq0tUehy9oqqlm3MMZaflbNf8GCM/Hqqzdi2LCNuO++p1FS0njEY0aN2ogPP/wVZsy4D089dQ/cbgUXX/xhLwnC6VILxk74rGXxogl8'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= 'PCKxXEUzXIpjXx+XAAACIklEQVSq56iutKrl6JaAkTRZJskyZiLDrIiRVq4MDSQvDgZM4QS97FwUeI5HLBtNpNB9vhWmoSMUjaGt6zgC/QIWoyCQqCLLnjy3+wWXpnklSdImDCNjMBYaHYuOBKOx9IRuiHhqAtF4EvFUCha3H8iQZ45PhJSUFL9W5ivbYZrmP8lU8qxLMeOBoejVDLOMuXJp3ZORU0XTqjfskArL1sgFvhpBJFUYCdjxIOOjnXGz79pBwc0fnOokQrKnF4kDKZtD2jEhRGjS/hsaGop27tz5EQD3w5iBF2JjhJDxpqamxmcuAKzc/Km/lxf9WOR/pZRfavm17+SRXZxbw5iBBsJBqXMtecyvEkSWfqL7KXVdApAPwAvAjf+YPCXHGJjjPGOOAS1Y97eiomJNaWnpIb/fv7a5uXnsf77z5EWdlmzbRvcLQTuOHWOHQ6EpcQ4xQ7YvHuLwn5rX3HPoQE4mmfAKm7slShUhiJYZTypWT49EAgHI6TRXBbgmUdOtuUxPbj7z5HmYrCjMtIXFLG5luGWnGeMDsbD93fV2Hjb0qT49DwCzbGtMpNB19jdwMyt52tMXwJ/XbiB/kRe+4sVksbdAohKRAAlC2ETTNFAqwTK5CIYjfDgUFrFYVCSTKYzFxtHZN4j+keBUIchs31+mlHLb5gsdp3ucMpGoXFpZA6q+BJsXTpsTEOmIwROhUxCiez72PT4+jlgsRp/Ety8uLub/AhIKBb23x+IGAAAAAElFTkSuQmCC'
    Return Binary(_Base64Decode($ImageEditor_Icons))
    EndFunc ;==>_ImageEditor_ToolbarIcons

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

    Func _Base64Decode($input_string)
    Local $struct = DllStructCreate("int")
    Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
    Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
    $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($a, 1)
    EndFunc ;==>_Base64Decode

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

    Play GIF Anim from memory: -> hier

    Play Chip Sound from memory -> hier

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    18 Mal editiert, zuletzt von UEZ (17. Dezember 2012 um 22:47)

  • AutoFlip: nette Idee mit der Base64 Codierung!

    Hier der Code dazu:


    Nur sehe ich kein Benefit zu der anderen Version, obwohl der Base64 String kürzer sein sollte (vergleicht man die Größe des Outputs beider Versionen)!


    Vielleicht habe ich auch was übersehen...

    Siehe Post #1

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    3 Mal editiert, zuletzt von UEZ (30. Oktober 2011 um 15:34)

  • Kleines Update. Unter anderem höhere Geschwindigkeit beim Erstellen des Binär Strings.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Code auf Base64 String umgestellt, um noch ein bissl an Bytes zu sparen!


    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Musste noch ein paar Bugs fixen und habe DEP Check noch hinzugefügt, da ansonsten es zum Hard Crash bei der Base64 Konvertierung kommt!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Im Post#1 ist die aktuelle Version. Vorige Version war die 0.92.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • einen Base64-Ressource Erzeuger habe ich vor ein paar Tagen erst geschrieben....
    Seltsam, dass vorher noch keiner auf die Idee kam und bisher alles als HexString eingebaut wurde...

    lg
    M