Jump to content
UEZ

File to Base64 String Code Generator v1.20 Build 2015-01-20 (embed your files easily)

Recommended Posts


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

@UEZ.... still happening installing V3.3.14.5.... On a side note the "About SciTE" still says Version 3.7.3 is that correct?

Share this post


Link to post
Share on other sites

What was the original font file format in the example? 

*.TTF  ?

use a font ... see the third example from the author here

On 29. 10. 2011 at 11:22 PM, UEZ said:

Display Font from Memory:

 

Edited by R_P

Share this post


Link to post
Share on other sites
24 minutes ago, R_P said:

What was the original font file format in the example? 

*.TTF  ?

use a font ... see the third example from the author here

 

Probably yes. Save the binary string to a file and check it out. ;)


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

Wonderful tool!

Your examples might need updating.

I'm using AutoIt 3.3.14.5 and the concurrent SciTE to see your examples available in your original post. When I use SyntaxCheck or F5 Go, two errors frequently appear for the examples I've tried thus far:

1. #include <WinAPISysWin.au3> needs to be added

2. #ULW_ALPHA must need another include but haven't figured out yet what it is.  In the past few days I've just substituted the number 2 in place of it but I'd love to know the real fix.

Share this post


Link to post
Share on other sites
8 hours ago, timmy2 said:

Your examples might need updating.

all you need to change to make it "newer" is

#include <WinAPIProc.au3>
Global Const $WH_CBT = 5
;~ Global Const $SND_ASYNC = 0x00000001
;~ Global Const $SND_MEMORY = 0x00000004
;~ Global Const $SND_NOSTOP = 0x00000010

to change/add those =)

Share this post


Link to post
Share on other sites

Hi UEZ, I'm trying to use an embbeded icon in a TreeView control without success, any help will be appreciated.

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <GuiTreeView.au3>
#include <Staticconstants.au3>
#include <WinAPI.au3>
#include <WinAPIEx.au3>
#include <WinAPIHObj.au3>
#include <WindowsConstants.au3>
;----------------------------------------------------------------------------------------------------------------------
_GDIPlus_Startup()
Global $Icon = Load_BMP_From_Mem(Exit24X24png(), True)



GUICreate("TreeView Set Icon", 400, 300)

Global $idTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES))

Global $TVRoot = GUICtrlCreateTreeViewItem("Internet", $idTreeView)
_GUICtrlTreeView_SetImageIndex($idTreeView, $Icon, 6)

GUICtrlCreateTreeViewItem("Item 1", $TVRoot)
GUICtrlCreateTreeViewItem("Item 2", $TVRoot)
GUICtrlSetState($TVRoot, BitOR($GUI_EXPAND, $GUI_DEFBUTTON))

GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

GUIDelete()
_GDIPlus_Shutdown()


Func Load_BMP_From_Mem($bImage, $hHBITMAP = False) ;UEZ
    If Not IsBinary($bImage) Then Return
    Local $declared = True
    If Not $__g_hGDIPDll Then
        _GDIPlus_Startup()
        $declared = False
    EndIf
    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
    Local $hStream = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0)
    $hStream = $hStream[3]
    Local $hBitmap = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) ;Creates a Bitmap object based on an IStream COM interface
    $hBitmap = $hBitmap[2]
    Local Const $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
    If $hHBITMAP Then
        Local Const $hHBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
        _GDIPlus_BitmapDispose($hBitmap)
        If Not $declared Then _GDIPlus_Shutdown()
        Return $hHBmp
    EndIf
    If Not $declared Then _GDIPlus_Shutdown()
    Return $hBitmap
EndFunc   ;==>Load_BMP_From_Mem

Func WinAPI_Base64Decode($sB64String);UEZ
    Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0)
    If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "")
    Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]")
    $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0)
    If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($bBuffer, 1)
EndFunc   ;==>WinAPI_Base64Decode

Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize = 0x800000);UEZ
    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

Func Exit24X24png()
    Local $ExitPNG24X24png = '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'
    $ExitPNG24X24png &= '/zlbuDOlxaWFn06dWf/e6dPVjxqZd4r2p+eeswZ7utLpzs60Hk8kha6bALLRqNfz+UJhdTX79vxC4fMvv+z8P0P/A5IyTXF4aEjtaG5WLV1XvCAAKYPlbDb47fS0H9yRjv8m/wZF7Zsuu2STYgAAAABJRU5ErkJggg=='
    Return Binary(WinAPI_Base64Decode($ExitPNG24X24png))
EndFunc   ;==>Exit24X24png

 

Share this post


Link to post
Share on other sites

Hi,

this is an amazing tool. Exactly what I'm looking for.

But I have a small question, is there a simpler way to use a embedded font? I mean without GDI+?

I would like to use something like this:

Local $bFont_RobotoRegular = _Font_RobotoRegular() ;binary function from file to base64 string code generator
_WinAPI_AddFontResourceEx($bFont_RobotoRegular, $FR_PRIVATE)

Global Const $sFontname = "Roboto-Regular"

Local $hLabel = GUICtrlCreateLabel($sString, $iPosx, $iPosy)
GUICtrlSetFont($hLabel, $iTextSize, $iTextWeight, $iTextAttribute, $sFontname)

Just one simple function call to "use" or privatly install the binary string font.

Thanks in advance :3

With best regards,

borsTiHD

Share this post


Link to post
Share on other sites

Hi,

these are some lines from one of my projects where a base 64 encoded font is installed "from memory"

;****************** FONT *************
Global $_DBG_Fontname = "AssembleItDBG"                           ;modifiziert aus DejaVu Sans Mono
Global $_DBG_Fontsize = 8.5
Global Const $_DBG_bFont = _bfont()                               ;base64encoded font
Global $_DBG_tFont = DllStructCreate('byte[' & BinaryLen($_DBG_bFont) & ']')
DllStructSetData($_DBG_tFont, 1, $_DBG_bFont)
Global $_DBG_hFont = _DBG_WinAPI_AddFontMemResourceEx(DllStructGetPtr($_DBG_tFont), DllStructGetSize($_DBG_tFont))

;****************** G U I *************
Global $_DBG_GUI = GUICreate("AssembleIt2 Debug-Info 2.0", 730, 660, 10, 10, 0, $WS_EX_DLGMODALFRAME)
GUISetFont($_DBG_Fontsize, 400, 0, $_DBG_Fontname)

 

Share this post


Link to post
Share on other sites

Hi borsTiHD

here and example of embbeded font with UEZ script.

#include-once
#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <StaticConstants.au3>
#include <WinAPI.au3>
#include <WinAPIGdi.au3>
#include <WindowsConstants.au3>
;----------------------------------------------------------------------------------------------------------------------
Opt('GUICloseOnESC', 0)
Opt("GUIOnEventMode", 1)

Global $WWidth = @DesktopWidth - 200, $WHeight = @DesktopHeight - 200;- Main Window size ------------------------------
Global $BOK

Global $bGUICtrlClockFont = AstronautIII() ;------------------------ font name: Astronaut III --------------------------

Global $tGUICtrlClockFont = DllStructCreate('byte[' & BinaryLen($bGUICtrlClockFont) & ']')
DllStructSetData($tGUICtrlClockFont, 1, $bGUICtrlClockFont)
Global $hGUICtrlClockFont = _WinAPI_AddFontMemResourceEx(DllStructGetPtr($tGUICtrlClockFont), DllStructGetSize($tGUICtrlClockFont))

;*********************************************************** Main Window **********************************************
GUICreate("Digital Font from Memory", $WWidth, $WHeight)
GUICtrlCreateLabel("The numbers are: 0 1 2 3 4 5 6 7 8 9 10 11 12", 10, 10, 1000, 200)
GUICtrlSetFont(-1, 24, 400, 0, 'Astronaut III')
GUICtrlSetColor(-1, 0x66AAFF)
GUISetOnEvent($GUI_EVENT_CLOSE, "EventsCtrl")

GUISetState()
;*********************************************************** Main Window **********************************************


While 1
WEnd

Func EventsCtrl()
    Local $Msg = @GUI_CtrlId
    Switch $Msg
        Case $GUI_EVENT_CLOSE ;------------------------------ Main GUI cose -------------------------------------------
            GUIDelete()
            _WinAPI_RemoveFontMemResourceEx($hGUICtrlClockFont)
            Exit
    EndSwitch
EndFunc   ;==>EventsCtrl

;----------------------------------------------------------- Font embeded ---------------------------------------------
;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2015-01-20
Func AstronautIII()
    Local $Base64String = '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'
    $Base64String &= 'N7kAFv/AOFkBIzUzByM1MxcjIiY9ATMHIyImPQEzARZeXm5eXm4OIS9ebg4hL14BuF5eXswvIQ5eLyEOAAwASgAAAfICFgADAAcACwAPABMAFwAbAB8AIwAnACsALwAAASM1MxcjNTMnIzUzFyM1MwcjNTMTIzUzJSM1MxMjNTMHIzUzFyM1MycjNTMXIzUzAYReXm5eXtxeXm5eXm5eXtxeXv62Xl7cXl5uXl5uXl7cXl5uXl4BuF7MXhBezF5eXv7GXn5e/sZeXl7MXhBezF4AAAsASgAAAYQCFgADAAcACwASABkAHQAkACsALwAzADcAAAEjNTMXIzUzByM1MxcjNTMyFhUnIzU0NjsBFyM1MxcUBisBNTMnIyImPQEzFyM1MwcjNTMXIzUzARZeXm5eXm5eXm5eDiEv3F4vIQ5uXl5uLyEOXtwOIS9ebl5ebl5ebl5eAbhezF5eXsxeLyFgDiEvzF58IS9eEC8hDsxeXl7MXgAADQBKAAACYAIWAAMABwAOABUAHAAjACcALgA1ADwAQwBHAEsAAAEjNTMVIzUzJyM1MzIWFQEjNTMyFhUBIzU0NjsBFxQGKwE1MxcjNTMXIzU0NjsBFxQGKwE1MyUjIiY9ATMBIyImPQEzJyM1MwcjNTMB8l5eXl7cXg4hLwFKXg4hL/5IXi8hDm4vIQ5ebl5ebl4vIQ5uLyEOXv5IDiEvXgFKDiEvXtxeXm5eXgG4XsxeEF4vIf6oXi8hATwOIS98IS9ezF7MDiEvfCEvXuwvIQ7+WC8hDhBezF4AAA4ASgAAAfICFgADAAcACwAPABYAHQAhACUAKQAwADcAPgBCAEkAAAEjNTMHIzUzByM1MxMjNTMlFSM1NDYzEyM1NDY7AScjNTMXIzUzFyM1MycjIiY9ATMXFAYrATUzJyM1NDY7ARcjNTMHIyImPQEzAfJeXm5eXm5eXtxeXv62Xi8h6l4vIQ7cXl5uXl5uXl7cDiEvXtwvIQ5e3F4vIQ5uXl5uDiEvXgG4Xl5eXl7+xl7cXg4hL/7GDiEvEF7MXsxeEC8hDuohL14QDiEvzF5eLyEOAAACAEoBSgCoAhYAAwAKAFVAIQELC0AMAAoEAwMAAgkIAgMBAQAEAgoJBAQFBAMCAQEBRnYvNxgAPzwvPBD9PBD9PAEvFzz9FzwAMTABSWi5AAEAC0loYbBAUlg4ETe5AAv/wDhZEyM1MxUjIiY9ATOoXl4OIS9eAbhezC8hDv//AEoAAAEWAhYABgBeAAD//wBKAAABFgIWAAYAYAAAAAQASgFKARYCFgAGAA0AFAAbAHZAOAEcHEAdABMSAgMBAhQOBgMAGxUNAwcCGhkJAwgNDAMDAgQAFhUSAxEEEwgHAQMAGxoUAxMBAQhGdi83GAA/FzwvFzwQ/Rc8EP0XPAEvFzz9FzwvFzz9FzwAMTABSWi5AAgAHEloYbBAUlg4ETe5ABz/wDhZASM1MzIWFQcjNTQ2OwE3FAYrATUzByMiJj0BMwEWXg4hL25eLyEObi8hDl5uDiEvXgFKXi8hDg4hL2AhL15eLyEOAAUASgBuAYQBqAADAAcACwAPABMAgUA+ARQUQBUEDwwCDg0BBgUCBwQTEAsIAwUAAhIRCgkCBQEBAAQCDw4LCgcFBgQNDAkIBQUEExIEEAMCERABDUZ2LzcYAC88LzwQ/TwvFzz9FzwQ/TwBLxc8/Rc83Tz9PBDdPP08ADEwAUlouQANABRJaGGwQFJYOBE3uQAU/8A4WQEjNTMXIzUzByM1MwcjNTMXIzUzARZeXm5eXm5eXm5eXm5eXgFKXsxeXl5eXsxeAAIASv+SAKgAXgADAAoAUkAfAQsLQAwACgQDAwACCQgCAwEKCQQHAwIIBwEAAAEBRnYvNxgAPzwvPC88EP08AS8XPP0XPAAxMAFJaLkAAQALSWhhsEBSWDgRN7kAC//AOFkzIzUzFRQGKwE1M6heXi8hDl5efCEvXgAAAwBKANwBhAE6'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= 'AvIABgANAE5AHAEODkAPAAkIBgACAQINBwgHAQMADQwDAwIBCEZ2LzcYAC8XPC8XPAEvPP08Li4uLgAxMAFJaLkACAAOSWhhsEBSWDgRN7kADv/AOFkBIxUzMjY1JyMVFBY7AQGEXg4hL25eLyEOAvJeLyEODiEv//8ASgAAAfICFgAGAJkAAAAEALgCJQGEAvEABgANABQAGwB1QDcBHBxAHQATEgIDAQIUDgYDABsVDQMHAhoZCQMICAcBAwAEAhsaFAMTBBENDAMDAhYVEgMRAQhGdi83GAAvFzwvFzwQ/Rc8EP0XPAEvFzz9FzwvFzz9FzwAMTABSWi5AAgAHEloYbBAUlg4ETe5ABz/wDhZASM1MzIWFQcjNTQ2OwEXFAYrATUzByMiJj0BMwGEXg4hL25eLyEObi8hDl5uDiEvXgKTXi8hDg4hL3whL15eLyEOAP//AEoAAAHyAhYABgCZAAD//wBKAAAB8gIWAAYAmQAA//8ASgAAAfICFgAGAJkAAP//AEoAAAHyAhYABgCZAAD//wBKAAAB8gIWAAYAmQAA//8ASgAAAfICFgAGAJkAAAAQAEoAAAJgAhYABgAKAA4AEgAWABoAHgAiACYALQAxADUAOQA9AEEASAAAASM1MzIWFQcjNTMXIzUzJyM1MxMjNTMlIzUzASM1MyUjNTMXIzUzFxQGKwE1MyUjNTMTIzUzJSM1MxcjNTMXIzUzByMiJj0BMwJgXg4hL25eXm5eXtxeXtxeXv62Xl4BSl5e/rZeXm5eXtwvIQ5e/rZeXtxeXv62Xl5uXl5uXl5uDiEvXgG4Xi8hDl7MXhBe/sZefl7+WF5+Xsxe6iEvXn5e/sZefl7MXsxeXi8hDgAAFABKAAAB8gIWAAYACgAOABIAGQAdACEAJQApAC0AMQA1ADkAPQBBAEgATABQAFQAWwAAMzUjFRQWMyczFSM1MxUjNTMVIzUzNSMiBhUTMxUjNTMVIzUzFSM1MxUjNTMVIxMzFSM1MxUjNTMVIzUzFSM1MxUjEyMVMzI2NSczFSM1MxUjNTMVIzUVMzU0JiOoXi8hUF5eXl5eXl4OIS9uXl5eXl5eXl5eXm5eXl5eXl5eXl5ezF4OIS9eXl5eXl5eXi8hXg4hL8xezF7MXm5eLyH+mF7MXsxezF7MXv6mXsxezF7MXsxe/qZeLyF8XsxezF7MXg4hL///AEoAAAHyAvIAJgA2AAAABgCPAAD//wBKAAAB8gLyACYANgAAAAYAjwAA//8ASgAAAfIDYAAmADwAAAAGAGkAAP//AEoAAAHyA2AAJgA8AAAABgBpAAAAEABKAAAB8gIWAAYACgAOABIAGQAgACQAKAAvADMANwA7AD8AQwBKAE4AAAEjNTMyFhUHIzUzFyM1MycjNTMXFAYrATUzJSM1NDY7ARMjNTMnIzUzFyM1NDY7ARMjNTMlIzUzFyM1MxcjNTMnIzUzFyMiJj0BMwcjNTMB8l4OIS9uXl5uXl7cXl7cLyEOXv62Xi8hDtxeXtxeXm5eLyEO3F5e/rZeXm5eXm5eXtxeXm4OIS9ebl5eAbheLyEOXsxeEF7qIS9efg4hL/7GXhBezA4hL/7GXn5ezF7MXhBezC8hDl5eAAAQAEoAAAHyAhYABgAKAA4AEgAWAB0AJAAoACwAMAA0ADsAPwBDAEoATgAAASM1MzIWHQEjNTMnIzUzByM1MxMjNTMlIzU0NjsBARQGKwE1MyUjNTMTIzUzFyM1MyUjNTMXIzU0NjsBFyM1MycjNTMXIyImPQEzByM1MwHyXg4hL15ebl5ebl5e3F5e/rZeLyEOAUovIQ5e/rZeXtxeXm5eXv62Xl5uXi8hDm5eXtxeXm4OIS9ebl5eAbheLyF8XhBeXl7+xl5+DiEv/qghL15+Xv7GXsxefl7MDiEvzF4QXswvIQ5eXgD//wBKAAAB8gLyACYAPQAAAAYAjwAA//8ASgAAAfIC8gAmAD0AAAAGAI8AAP//'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= 'AABcPgAAXFQAAFxqAABcgAAAXJYAAFysAABcwgAAXNgAAFzuAABdBAAAXRoAAF0wAABdRgAAXVwAAF1yAABdiAAAXZ4AAF2uAABeugAAX9gAAGCwAABgwAAAYNAAAGDgAABg8AAAYQAAAGEQAABhIAAAYcIAAGJiAABi7AAAZAgAAGS8AABkzAAAZNwAAGTsAABk/AAAZPwAAGUSAABlKAAAZT4AAGVOAABl/AAAZhIAAGYoAABmPgAAZlQAAGZqAABmgAAAZpYAAGasAABmwgAAZtgAAGbuAABnBAAAZxoAAGfYAABn7gAAaAQAAGgaAABoMAH0AD8AAAAAAT8AAAE/AAABFgBKARYASgHyAEoBhABKAmAASgHyAEoAqABKARYASgEWAEoBFgBKAYQASgCoAEoBhABKAKgASgJgAEoB8gBKAYQASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKARYASgEWAEoBFgBKAfIASgEWAEoB8gBKAmAASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgJgAEoB8gBKARcASgHyAEoB8gBKAfIASgLOAEoCYABKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoCzgBKAfIASgHyAEoB8gBKARYASgJgAEoBFgBKARcASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoBFgBKAfIASgHyAEoB8gBKAs4ASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgLOAEoB8gBKAfIASgHyAEoBFgBKAKgASgEWAEoBhABKAfIASgHyAEoB8gBKAfIASgEXAEoCYABKAfIASgHyAEoB8gBKAzsASgHyAEoB8gBKAfIASgHyAEoDOwBKAfIASgHyAEoAqP/cAYQASgHyAEoB8gBKAl8ASgM7AEoDOwBKARYASgHyAEoBFgBKARYASgCoAEoAqABKAmAASgHyAEoBFgBKARYASgIkAEoCJABKAfIASgHyAEoB8gBKAfIASgHyAEoBFgBKAfIAuAHyAEoB8gBKAfIAuAHyAEoB8gC4AfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAmAASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgEWAEoBFgBKARYASgEWAA4B8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgJgAEoCYABKA6oASgHyAEoB8gBKAfIASgEWAEoBFgBKAfIASgHyAEoB8gBKAmAASgJgAEoBhABKAfIASgHyAEoB8gBKAfIASgHyAEoBPwAAAfIASgHyAEoB8gBKAfIASgJgAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoB8gBKAKgASgCoAEoAqP/cAKj/3AHyAEoB8gBKAfIASgHyAEoB8gBKAfIASgHyAEoAAgAAAAAAAP97ABQAAAAAAAAAAAAAAAAAAAAAAAAAAADuAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCCAIQAhQCGAIcAiACJAI0AjgCQAJEAlgCdAJ4AoAChAKIAowCmAKkAqgCrALAAsQCyALMAtAC1ALYAtwC8AL0AvgC/AMAAwQDC'
    $Base64String &= 'AMMAxADFAMYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDpAOoA5ADlAOsA7ADtAO4A5gDnAGIAYwBkAGUAZgBnAGgAaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AHcAeAB5AHoAewB8AH0AfgB/AIAAgQCDAIoAiwCMAI8AkgCTAJQAlQCXAJgAmQCaAJsAnACfAKQApQCnAKgArACtAK4ArwC4ALkAugC7AMcAyADJAMoAywDMAM0AzgDPANAA0QDSANMA1ADVANYAAAAAAAMAAAAAAAABJAABAAAAAAAcAAMAAQAAASQAAAEGAAABAAAAAAAAAAEDAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAMEBQYHCAl/CwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJ+REVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNjZIBtdGWBCnx1goOEhQB6YoaHAGdmiIl9dneKAHIAQ2mMjY6PkGoAkZIAk5SVewAAAAAAAAAAAAAAAAAAAABrAG4AAAAAlmx4bwAAAAAAcAAAAIsAAJdxeWiYmZqbAAAABANuAAAAXgBAAAUAHgB+AKUArACxALgAuwDWAP8BMQFCAVMBYQF4AX4BkgLHAskC3QOUA6kDvAPAIBAgFCAaIB4gIiAmIDAgOiBEISIhJiICIgYiDyIRIhoiHiIrIkgiYCJlIvIlyvAC//8AAAAgAKAApwCuALQAugC/ANgBMQFBAVIBYAF4AX0BkgLGAskC2AOUA6kDvAPAIBAgEyAYIBwgICAmIDAgOSBEISIhJiICIgYiDyIRIhkiHiIrIkgiYCJkIvIlyvAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAF4BGgEkAS4BNAE8AT4BbAG6AboBvAG+AcABwAHCAcIBxAHEAc4BzgHOAc4BzgHOAdAB1AHYAdwB3AHcAd4B3gHeAd4B3gHeAd4B3gHgAeAB4AHgAeAB4gHiAeL//wADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEA1gBzAGMAZACBAG0AZQBqAMQAbgB1ANIAwwCOAMIAyABpAMsAZwCHAJIAbwB2AHIA1wDgAN4A2ACiAKMAawCkAOIApQDfAOEA5gDjAOQA5QCYAKYA6gDnAOgA2QCnAGwA7QDrAOwAqACcAJ4AaACqAKkAqwCtAKwArgBwAK8AsQCwALIAswC1ALQAtgC3AJkAuAC6ALkAuwC9ALwA2gBxAL8AvgDAAMEAnQCfANwAiwCWAJcAeAB5AJoAmwDdAKAAoQB0AIwAlQCOAI8AkACRAJQAjQCTANUA0QDLAM8AEAB6AHsAfgB/AIgAfAB9AIkAYgCGAGYAdwCKAIIAgwCAAMUA0QDMANUAzgDNAIcA0wDHANAA1ADGAMkAygDUANsA6QCEAIUAAAAAAAAAEAAAAPAJCAUAAwMDAwQDBQQCAwMDAwIDAgUEAwQEBAQEBAQEAwMDBAMEBQQEBAQEBAUEAwQEBAYFBAQEBAQEBAQGBAQEAwUDAwQEBAQEBAQEBAQDBAQEBgQEBAQEBAQEBAYEBAQDAgMDBAQEBAMFBAQEBwQE'
    $Base64String &= 'BAQHBAQCAwQEBQcHAwQDAwICBQQDAwUFBAQEBAQDBAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAMDAwMEBAQEBAQEBAQEBAUFCAQEBAMDBAQEBQUDBAQEBAQDBAQEBAUEBAQEBAQEAgICAgQEBAQEBAQKCQUAAwMDAwUEBgUCAwMDBAIEAgYFBAUFBQUFBQUFAwMDBQMFBgUFBQUFBQYFAwUFBQcGBQUFBQUFBQUHBQUFAwYDAwUFBQUFBQUFBQUDBQUFBwUFBQUFBQUFBQcFBQUDAgMEBQUFBQMGBQUFCAUFBQUIBQUCBAUFBggIAwUDAwICBgUDAwUFBQUFBQUDBQUFBQUFBQUFBQUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQMDAwMFBQUFBQUFBQUFBQYGCQUFBQMDBQUFBgYEBQUFBQUDBQUFBQYFBQUFBQUFAgICAgUFBQUFBQULCgYABAQDAwUEBwUCAwMDBAIEAgcFBAUFBQUFBQUFAwMDBQMFBwUFBQUFBQcFAwUFBQgHBQUFBQUFBQUIBQUFAwcDAwUFBQUFBQUFBQUDBQUFCAUFBQUFBQUFBQgFBQUDAgMEBQUFBQMHBQUFCQUFBQUJBQUCBAUFBwkJAwUDAwICBwUDAwYGBQUFBQUDBQUFBQUFBQUFBQUFBwUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQMDAwMFBQUFBQUFBQUFBQcHCgUFBQMDBQUFBwcEBQUFBQUEBQUFBQcFBQUFBQUFAgICAgUFBQUFBQUMCwYABAQDAwYFBwYCAwMDBQIFAgcGBQYGBgYGBgYGAwMDBgMGBwYGBgYGBgcGAwYGBgkHBgYGBgYGBgYJBgYGAwcDAwYGBgYGBgYGBgYDBgYGCQYGBgYGBgYGBgkGBgYDAgMFBgYGBgMHBgYGCgYGBgYKBgYCBQYGBwoKAwYDAwICBwYDAwcHBgYGBgYDBgYGBgYGBgYGBgYGBwYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgMDAwMGBgYGBgYGBgYGBgcHCwYGBgMDBgYGBwcFBgYGBgYEBgYGBgcGBgYGBgYGAgICAgYGBgYGBgYNDAcABAQEBAYFCAYCBAQEBQIFAggGBQYGBgYGBgYGBAQEBgQGCAYGBgYGBggGBAYGBgkIBgYGBgYGBgYJBgYGBAgEBAYGBgYGBgYGBgYEBgYGCQYGBgYGBgYGBgkGBgYEAgQFBgYGBgQIBgYGCwYGBgYLBgYCBQYGCAsLBAYEBAICCAYEBAcHBgYGBgYEBgYGBgYGBgYGBgYGCAYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgQEBAQGBgYGBgYGBgYGBggIDAYGBgQEBgYGCAgFBgYGBgYEBgYGBggGBgYGBgYGAgICAgYGBgYGBgYODQcABAQEBAcFCQcCBAQEBQIFAgkHBQcHBwcHBwcHBAQEBwQHCQcHBwcHBwkHBAcHBwoJBwcHBwcHBwcKBwcHBAkEBAcHBwcHBwcHBwcEBwcHCgcHBwcHBwcHBwoHBwcEAgQFBwcHBwQJBwcHDAcHBwcMBwcCBQcHCAwMBAcEBAICCQcEBAgIBwcHBwcEBwcHBwcHBwcHBwcHCQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwQEBAQHBwcHBwcHBwcHBwkJDQcHBwQEBwcHCQkFBwcHBwcEBwcHBwkHBwcHBwcHAgICAgcHBwcHBwcPDggABQUEBAcGCQcDBAQEBgMGAwkHBgcHBwcHBwcHBAQEBwQHCQcHBwcHBwkHBAcHBwsJBwcHBwcHBwcLBwcHBAkEBAcHBwcHBwcHBwcEBwcHCwcHBwcHBwcHBwsHBwcEAwQGBwcHBwQJBwcHDAcHBwcMBwcDBgcHCQwMBAcEBAMDCQcEBAgIBwcHBwcEBwcHBwcHBwcHBwcHCQcHBwcHBwcHBwcHBwcHBwcH'
    $Base64String &= 'BwcHBwcHBwcHBwQEBAQHBwcHBwcHBwcHBwkJDgcHBwQEBwcHCQkGBwcHBwcFBwcHBwkHBwcHBwcHAwMDAwcHBwcHBwcQDwgABQUEBAgGCggDBAQEBgMGAwoIBggICAgICAgIBAQECAQICggICAgICAoIBAgICAsKCAgICAgICAgLCAgIBAoEBAgICAgICAgICAgECAgICwgICAgICAgICAsICAgEAwQGCAgICAQKCAgIDQgICAgNCAgDBggICg0NBAgEBAMDCggEBAkJCAgICAgECAgICAgICAgICAgICggICAgICAgICAgICAgICAgICAgICAgICAgICAQEBAQICAgICAgICAgICAoKDwgICAQECAgICgoGCAgICAgFCAgICAoICAgICAgIAwMDAwgICAgICAgREAkABQUFBQgHCggDBQUFBwMHAwoIBwgICAgICAgIBQUFCAUICggICAgICAoIBQgICAwKCAgICAgICAgMCAgIBQoFBQgICAgICAgICAgFCAgIDAgICAgICAgICAwICAgFAwUHCAgICAUKCAgIDggICAgOCAgDBwgICg4OBQgFBQMDCggFBQkJCAgICAgFCAgICAgICAgICAgICggICAgICAgICAgICAgICAgICAgICAgICAgICAUFBQUICAgICAgICAgICAoKEAgICAUFCAgICgoHCAgICAgFCAgICAoICAgICAgIAwMDAwgICAgICAgSEQkABgYFBQkHCwkDBQUFBwMHAwsJBwkJCQkJCQkJBQUFCQUJCwkJCQkJCQsJBQkJCQ0LCQkJCQkJCQkNCQkJBQsFBQkJCQkJCQkJCQkFCQkJDQkJCQkJCQkJCQ0JCQkFAwUHCQkJCQULCQkJDwkJCQkPCQkDBwkJCw8PBQkFBQMDCwkFBQoKCQkJCQkFCQkJCQkJCQkJCQkJCwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQUFBQUJCQkJCQkJCQkJCQsLEQkJCQUFCQkJCwsHCQkJCQkGCQkJCQsJCQkJCQkJAwMDAwkJCQkJCQkTEgoABgYFBQkHDAkDBQUFBwMHAwwJBwkJCQkJCQkJBQUFCQUJDAkJCQkJCQwJBQkJCQ4MCQkJCQkJCQkOCQkJBQwFBQkJCQkJCQkJCQkFCQkJDgkJCQkJCQkJCQ4JCQkFAwUHCQkJCQUMCQkJEAkJCQkQCQkDBwkJDBAQBQkFBQMDDAkFBQoKCQkJCQkFCQkJCQkJCQkJCQkJDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQUFBQUJCQkJCQkJCQkJCQwMEgkJCQUFCQkJDAwHCQkJCQkGCQkJCQwJCQkJCQkJAwMDAwkJCQkJCQkUEwoABgYGBgoIDAoDBgYGCAMIAwwKCAoKCgoKCgoKBgYGCgYKDAoKCgoKCgwKBgoKCg4MCgoKCgoKCgoOCgoKBgwGBgoKCgoKCgoKCgoGCgoKDgoKCgoKCgoKCg4KCgoGAwYICgoKCgYMCgoKEQoKCgoRCgoDCAoKDBERBgoGBgMDDAoGBgsLCgoKCgoGCgoKCgoKCgoKCgoKDAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYKCgoKCgoKCgoKCgwMEwoKCgYGCgoKDAwICgoKCgoGCgoKCgwKCgoKCgoKAwMDAwoKCgoKCgoVFAsABwcGBgoIDQoEBgYGCAQIBA0KCAoKCgoKCgoKBgYGCgYKDQoKCgoKCg0KBgoKCg8NCgoKCgoKCgoPCgoKBg0GBgoKCgoKCgoKCgoGCgoKDwoKCgoKCgoKCg8KCgoGBAYICgoKCgYNCgoKEQoKCgoRCgoECAoKDRERBgoGBgQEDQoGBgwMCgoKCgoGCgoKCgoKCgoKCgoKDQoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYKCgoKCgoKCgoKCg0NFAoKCgYGCgoKDQ0ICgoKCgoHCgoKCg0KCgoKCgoKBAQE'
    $Base64String &= 'BAoKCgoKCgoWFQsABwcGBgsJDQsEBgYGCQQJBA0LCQsLCwsLCwsLBgYGCwYLDQsLCwsLCw0LBgsLCxANCwsLCwsLCwsQCwsLBg0GBgsLCwsLCwsLCwsGCwsLEAsLCwsLCwsLCxALCwsGBAYJCwsLCwYNCwsLEgsLCwsSCwsECQsLDRISBgsGBgQEDQsGBgwMCwsLCwsGCwsLCwsLCwsLCwsLDQsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwYGBgYLCwsLCwsLCwsLCw0NFQsLCwYGCwsLDQ0JCwsLCwsHCwsLCw0LCwsLCwsLBAQEBAsLCwsLCwsXFgwABwcGBgsJDgsEBgYGCQQJBA4LCQsLCwsLCwsLBgYGCwYLDgsLCwsLCw4LBgsLCxEOCwsLCwsLCwsRCwsLBg4GBgsLCwsLCwsLCwsGCwsLEQsLCwsLCwsLCxELCwsGBAYJCwsLCwYOCwsLEwsLCwsTCwsECQsLDhMTBgsGBgQEDgsGBg0NCwsLCwsGCwsLCwsLCwsLCwsLDgsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwYGBgYLCwsLCwsLCwsLCw4OFgsLCwYGCwsLDg4JCwsLCwsHCwsLCw4LCwsLCwsLBAQEBAsLCwsLCwsYFwwACAgHBwwJDwwEBwcHCQQJBA8MCQwMDAwMDAwMBwcHDAcMDwwMDAwMDA8MBwwMDBEPDAwMDAwMDAwRDAwMBw8HBwwMDAwMDAwMDAwHDAwMEQwMDAwMDAwMDBEMDAwHBAcJDAwMDAcPDAwMFAwMDAwUDAwECQwMDxQUBwwHBwQEDwwHBw0NDAwMDAwHDAwMDAwMDAwMDAwMDwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAcHBwcMDAwMDAwMDAwMDA8PFwwMDAcHDAwMDw8JDAwMDAwIDAwMDA8MDAwMDAwMBAQEBAwMDAwMDAwAAAHOAZAABQABArwCigAAAI8CvAKKAAABxQAyAQMAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWx0cwBAACDwAgNg/yQAAANgANwAAAABAAAAAQAA7akOdV8PPPUAAAPoAAAAALcUv64AAAAAtxS/rv/c/yQDqgNgAAAAAwACAAEAAAAAAAEAAANg/yQAAAOq/9z/kgOqAAEAAAAAAAAAAAAAAAAAAADuAAEAAADuAIoAHQBoABcAAgAIAEAACgAAAGIAqgACAAM='
    Return Binary(_WinAPI_Base64Decode($Base64String))
EndFunc   ;==>AstronautIII

Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize);UEZ
    $tOutput = DllStructCreate("byte[" & $iBufferSize & "]")
    If @error Then Return SetError(1, 0, 0)
    Local $aRet = DllCall("ntdll.dll", "uint", "RtlDecompressBuffer", "ushort", 0x0002, "struct*", $tOutput, "ulong", $iBufferSize, "struct*", $tInput, "ulong", DllStructGetSize($tInput), "ulong*", 0)
    If @error Then Return SetError(2, 0, 0)
    If $aRet[0] Then Return SetError(3, $aRet[0], 0)
    Return $aRet[6]
EndFunc   ;==>_WinAPI_LZNTDecompress

Func _WinAPI_Base64Decode($sB64String);UEZ
    Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0)
    If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "")
    Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]")
    $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0)
    If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($bBuffer, 1)
EndFunc   ;==>_WinAPI_Base64Decode

 

Share this post


Link to post
Share on other sites

Thank you so much, you two. :)

I will try that tomorrow, but I think this is exactly what I'm looking for. :D

 

€dit: Perfect... it works. ^_^

Edited by borsTiHD

Share this post


Link to post
Share on other sites
21 hours ago, jcpetu said:

Hi UEZ, I'm trying to use an embbeded icon in a TreeView control without success, any help will be appreciated.

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <GuiTreeView.au3>
#include <Staticconstants.au3>
#include <WinAPI.au3>
#include <WinAPIEx.au3>
#include <WinAPIHObj.au3>
#include <WindowsConstants.au3>
;----------------------------------------------------------------------------------------------------------------------
_GDIPlus_Startup()
Global $Icon = Load_BMP_From_Mem(Exit24X24png(), True)



GUICreate("TreeView Set Icon", 400, 300)

Global $idTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES))

Global $TVRoot = GUICtrlCreateTreeViewItem("Internet", $idTreeView)
_GUICtrlTreeView_SetImageIndex($idTreeView, $Icon, 6)

GUICtrlCreateTreeViewItem("Item 1", $TVRoot)
GUICtrlCreateTreeViewItem("Item 2", $TVRoot)
GUICtrlSetState($TVRoot, BitOR($GUI_EXPAND, $GUI_DEFBUTTON))

GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

GUIDelete()
_GDIPlus_Shutdown()


Func Load_BMP_From_Mem($bImage, $hHBITMAP = False) ;UEZ
    If Not IsBinary($bImage) Then Return
    Local $declared = True
    If Not $__g_hGDIPDll Then
        _GDIPlus_Startup()
        $declared = False
    EndIf
    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
    Local $hStream = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0)
    $hStream = $hStream[3]
    Local $hBitmap = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) ;Creates a Bitmap object based on an IStream COM interface
    $hBitmap = $hBitmap[2]
    Local Const $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
    If $hHBITMAP Then
        Local Const $hHBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
        _GDIPlus_BitmapDispose($hBitmap)
        If Not $declared Then _GDIPlus_Shutdown()
        Return $hHBmp
    EndIf
    If Not $declared Then _GDIPlus_Shutdown()
    Return $hBitmap
EndFunc   ;==>Load_BMP_From_Mem

Func WinAPI_Base64Decode($sB64String);UEZ
    Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0)
    If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "")
    Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]")
    $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0)
    If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($bBuffer, 1)
EndFunc   ;==>WinAPI_Base64Decode

Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize = 0x800000);UEZ
    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

Func Exit24X24png()
    Local $ExitPNG24X24png = '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'
    $ExitPNG24X24png &= '/zlbuDOlxaWFn06dWf/e6dPVjxqZd4r2p+eeswZ7utLpzs60Hk8kha6bALLRqNfz+UJhdTX79vxC4fMvv+z8P0P/A5IyTXF4aEjtaG5WLV1XvCAAKYPlbDb47fS0H9yRjv8m/wZF7Zsuu2STYgAAAABJRU5ErkJggg=='
    Return Binary(WinAPI_Base64Decode($ExitPNG24X24png))
EndFunc   ;==>Exit24X24png

 

 

Try this:

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <GuiTreeView.au3>
#include <Staticconstants.au3>
#include <WinAPI.au3>
#include <WinAPIEx.au3>
#include <WinAPIHObj.au3>
#include <WindowsConstants.au3>
;----------------------------------------------------------------------------------------------------------------------
_GDIPlus_Startup()
Global $Icon = _GDIPlus_BitmapCreateFromMemory(Exit24X24png())
Global $hIcon_16x16 = _GDIPlus_ImageResize($Icon, 16, 16)
Global $hIcon_16x16_GDI = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hIcon_16x16)
Global $hImage = _GUIImageList_Create(16, 16, 5, 3)
_GUIImageList_Add($hImage, $hIcon_16x16_GDI)

GUICreate("TreeView Set Icon", 400, 300)

Global $idTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES))

Global $TVRoot = GUICtrlCreateTreeViewItem("Internet", $idTreeView)
GUICtrlCreateTreeViewItem("Item 1", $TVRoot)
GUICtrlCreateTreeViewItem("Item 2", $TVRoot)
GUICtrlSetState($TVRoot, BitOR($GUI_EXPAND, $GUI_DEFBUTTON))

_GUICtrlTreeView_SetNormalImageList($idTreeView, $hImage)
GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

GUIDelete()
_GDIPlus_ImageDispose($Icon)
_GDIPlus_ImageDispose($hIcon_16x16)
_WinAPI_DeleteObject($hIcon_16x16_GDI)
_GDIPlus_Shutdown()

Func WinAPI_Base64Decode($sB64String);UEZ
    Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0)
    If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "")
    Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]")
    $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0)
    If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($bBuffer, 1)
EndFunc   ;==>WinAPI_Base64Decode

Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize = 0x800000);UEZ
    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

Func Exit24X24png()
    Local $ExitPNG24X24png = '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'
    $ExitPNG24X24png &= '/zlbuDOlxaWFn06dWf/e6dPVjxqZd4r2p+eeswZ7utLpzs60Hk8kha6bALLRqNfz+UJhdTX79vxC4fMvv+z8P0P/A5IyTXF4aEjtaG5WLV1XvCAAKYPlbDb47fS0H9yRjv8m/wZF7Zsuu2STYgAAAABJRU5ErkJggg=='
    Return Binary(WinAPI_Base64Decode($ExitPNG24X24png))
EndFunc   ;==>Exit24X24png

 


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

I'm trying to place some icons to right side of the the menu-bar (below close and other buttons) but setting $top coordinate to zero places it just below it... it seems menu bar not counted as client area?..

also - for some reason in code below pics (jpeg, 24x24) not visible...

#AutoIt3Wrapper_UseX64=Y
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>

#include <GuiMenu.au3>
#include <GDIPlus.au3>

Opt("GUIOnEventMode", 1)

$hDLL_Crypt32 = DllOpen("Crypt32.dll")
$hDLL_ntdll = DllOpen("ntdll.dll")
$hDLL_User32 = DllOpen("user32.dll")


$iWidth = 555
$iIconSize = 24

#Region ### START Koda GUI section ### Form=
Local $Form1 = GUICreate("Form1", $iWidth, 333, (@DesktopWidth - $iWidth)/2, (@DesktopHeight - 333)/2)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")

Global Enum $e_idNew = 1000, $e_idOpen, $e_idSave, $e_idExit, $e_idCut, $e_idCopy, $e_idPaste, $e_idAbout

; Create File menu
$hFile = _GUICtrlMenu_CreateMenu()
_GUICtrlMenu_InsertMenuItem($hFile, 0, "&New", $e_idNew)
_GUICtrlMenu_InsertMenuItem($hFile, 1, "&Open", $e_idOpen)
_GUICtrlMenu_InsertMenuItem($hFile, 2, "&Save", $e_idSave)
_GUICtrlMenu_InsertMenuItem($hFile, 3, "", 0)
_GUICtrlMenu_InsertMenuItem($hFile, 4, "E&xit", $e_idExit)

; Create Edit menu
$hEdit = _GUICtrlMenu_CreateMenu()
_GUICtrlMenu_InsertMenuItem($hEdit, 0, "&Cut", $e_idCut)
_GUICtrlMenu_InsertMenuItem($hEdit, 1, "C&opy", $e_idCopy)
_GUICtrlMenu_InsertMenuItem($hEdit, 2, "&Paste", $e_idPaste)

; Create Help menu
$hHelp = _GUICtrlMenu_CreateMenu()
_GUICtrlMenu_InsertMenuItem($hHelp, 0, "&About", $e_idAbout)

; Create Main menu
$hMain = _GUICtrlMenu_CreateMenu()
_GUICtrlMenu_InsertMenuItem($hMain, 0, "&File", 0, $hFile)
_GUICtrlMenu_InsertMenuItem($hMain, 1, "&Edit", 0, $hEdit)
_GUICtrlMenu_InsertMenuItem($hMain, 2, "&Help", 0, $hHelp)

; Set window menu
_GUICtrlMenu_SetMenu($Form1, $hMain)


Local $Icon1 = GUICtrlCreatePic("", $iWidth - $iIconSize - 8, 0, $iIconSize, $iIconSize)
$Logo1 = _GDIPlus_BitmapCreateFromMemory(_Base64String1(), True)
_WinAPI_DeleteObject(GUICtrlSendMsg($Icon1, $STM_SETIMAGE, $IMAGE_BITMAP, $Logo1))

Local $Icon2 = GUICtrlCreatePic("", $iWidth - 2*$iIconSize-2 - 8, 0, $iIconSize, $iIconSize)
$Logo2 = _GDIPlus_BitmapCreateFromMemory(_Base64String2(), True)
_WinAPI_DeleteObject(GUICtrlSendMsg($Icon2, $STM_SETIMAGE, $IMAGE_BITMAP, $Logo2))

Local $Icon3 = GUICtrlCreatePic("", $iWidth - 3*$iIconSize-4 - 8, 0, $iIconSize, $iIconSize)
$Logo3 = _GDIPlus_BitmapCreateFromMemory(_Base64String3(), True)
_WinAPI_DeleteObject(GUICtrlSendMsg($Icon3, $STM_SETIMAGE, $IMAGE_BITMAP, $Logo3))

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    Sleep(100)
WEnd

Func Form1Close()
    GUIDelete()
    exit
EndFunc

;==============================================================================================================================================================================================
Func SharpReaderEX_SetIcon($hWnd,$bMemoryBitmap, ByRef $hIcon)
    Local $hBitmap = _GDIPlus_BitmapCreateFromMemory($bMemoryBitmap)
    $hIcon = _GDIPlus_HICONCreateFromBitmap($hBitmap)
    _SendMessageEX($hWnd, 0x0080, 1, $hIcon); 0x0080 = $WM_SETICON, 0 = icon small -> 1 = icon big
    ;_WinAPI_SetClassLongEx($hWnd, $GCL_HICONSM, $hIcon)
    ;_GDIPlus_BitmapDispose($hBitmap)
EndFunc
;==============================================================================================================================================================================================
Func _SendMessageEX($hWnd, $iMsg, $wParam = 0, $lParam = 0, $iReturn = 0, $wParamType = "wparam", $lParamType = "lparam", $sReturnType = "lresult")
    Local $aResult = DllCall($hDLL_User32, $sReturnType, "SendMessageW", "hwnd", $hWnd, "uint", $iMsg, $wParamType, $wParam, $lParamType, $lParam)
    If @error Then Return SetError(@error, @extended, "")
    If $iReturn >= 0 And $iReturn <= 4 Then Return $aResult[$iReturn]
    Return $aResult
EndFunc   ;==>_SendMessage



Func _Base64String1()
    Local $Base64String1
    $Base64String1 &= 'lLIA/9j/4AAQSkYASUYAAQEBAEgBABAA/9sAQwAHQAUGBgYFBwAgCAAIBwkLEgwLCgAKCxcQEQ0SGwAXHBwaFxoZHQAhKiQdHyggGQAaJTIlKCwtLwAwLx0jNDg0LiA3Ki4vLgGIAQgACAgLCgsWDAxAFi4eGh4uLgD/AMIAEQgAGAAYAAMBEQACEQEDEBEB/8QADwEAAwQBAAgAAwACBAYdABkXAMMAxQkABAIBEP/aAAwALwIQAwAQAAAB7eGmBgAhgtmtHS2ehqTzlAA0GxCAHwMJGwABAgMREiIABAUAHAiACwEFAnc7AHeN2Hhg0nb6AAVrQb05Y2KhNAF2AR0RAUSJRQECwBEAEBIhMgIdACoAPwFEEw6WZ0EAMTE84HxkcTGgCW5mE3+AHByAZwYCCzoAYhESIRATBQIdAgEdY220P1AAMxbbbSoBb3wAOCzkYu20rZmgjEWu20+BIBCOIAACABEDITEjsQGEWwY/AjuXuXcANxceZfTISQoAeKBGrkIbUKjAax8gVRc/AnwBloOJEEBZITFBUWEFPgA/IWgIBzNGNQAl+PPuKbAvvgDqnWAPykO9AQDLmXKN7MvSYQDmhD7i4kvLOAYNhVhAUgAAEKb95BQfwBcZEYJjSSjAFwNEF8FGEI6luT4GAK6EmYfjWahDAOZJFkyuhjIHRYFHHYEOAAAHiA4AIhGBJpGxwcZHENgABwIcQYgF0ZUAa6vuQedkPd8AYyQ0YKQ+JAU8MC8CSAAkgBmJNyEAIDFBcVGRxjcQWAAEAHC4EQKsbwDn3eBopdSoOgBHncOhDYW00QCENFDOKKao+gDw1MYyfaBbWwC/OeGGnBZBlADUOmtnMWi5GwDwcA7IBWrV0QBfuf/Z'
    $Base64String1 = _WinAPI_Base64Decode($Base64String1)
    Local $tSource = DllStructCreate('byte[' & BinaryLen($Base64String1) & ']')
    DllStructSetData($tSource, 1, $Base64String1)
    Local $tDecompress
    _WinAPI_LZNTDecompress($tSource, $tDecompress, 837)
    $tSource = 0
    Local Const $bString = Binary(DllStructGetData($tDecompress, 1))
    Return $bString
EndFunc   ;==>_Base64String1

Func _Base64String2()
    Local $Base64String2
    $Base64String2 &= 'srIA/9j/4AAQSkYASUYAAQEBAEgBABAA/9sAQwAHQAUGBgYFBwAgCAAIBwkLEgwLCgAKCxcQEQ0SGwAXHBwaFxoZHQAhKiQdHyggGQAaJTIlKCwtLwAwLx0jNDg0LiA3Ki4vLgGIAQgACAgLCgsWDAxAFi4eGh4uLgD/AMIAEQgAGAAYAAMBEQACEQEDMBEB/8QADwCpAwBBCAAGAwIEBwAZFwcAwwAbCAAEAwIA/wDaAAwDAQACEAADEAAAAWVZUwCjfNOetKtmfADxbWm42kSsymGAHB4QAAIAAIgqAQACAwQABRESExQUIgAgCAArAQUCAJ7QWYNziP8AAFdcjZ15B0MpAPPs9f7BEVwPUEKrJn+AIhuAUgOJikABA4BbBBITAiEBAA0/AWM8z7bKADdPkzqB2LvkAF2JYAIxYvLcoHYxCAqfACAcACBHgSCIYIBDERIhBEICAYEghXlZNRx5kgCOwJx6NfLZXcCuB6IFlu4BPwBiDAEEAB+KHhEhAxMQEjEyQQRiBj8CANKLaeihGO+9ABml0WNuaMTUAE7U2445kOSY0K7NuX0CIRAAS4oRAAEAESFhMUFRAsFFQj8hqCAFeQB9QvbfcfcLfACDjXLkwlVL9wAnQm4JiWgJhQAuWy8Ayj99rQxxP4VegmsQHyFseYEpHRHBF8pawBeAF2EEgZHGSRAcIBYnAJk16lwkAlvHAFDeoyvyCUxXIHBrMrzPQBAZESMCeksoMWEhxkgQSgA47cywMyoxjwCTPkY8m+AwLy1ADR/CNYlXAYEdAGEgUZGhcYGGNhBNAD4rejpVr2RmAK6WFMhdzngpAKUJ7lLfR+PCAFYIQgAZLcRjAFzVMMv5fIeOAAF4CpNNfyuAAKE70KNj8ZdsAFHlMqAg77gOAErZ5hh+A0HuAEMRf//Z'
    $Base64String2 = _WinAPI_Base64Decode($Base64String2)
    Local $tSource = DllStructCreate('byte[' & BinaryLen($Base64String2) & ']')
    DllStructSetData($tSource, 1, $Base64String2)
    Local $tDecompress
    _WinAPI_LZNTDecompress($tSource, $tDecompress, 866)
    $tSource = 0
    Local Const $bString = Binary(DllStructGetData($tDecompress, 1))
    Return $bString
EndFunc   ;==>_Base64String2

Func _Base64String3()
    Local $Base64String3
    $Base64String3 &= 'ybIA/9j/4AAQSkYASUYAAQEBAEgBABAA/9sAQwAHQAUGBgYFBwAgCAAIBwkLEgwLCgAKCxcQEQ0SGwAXHBwaFxoZHQAhKiQdHyggGQAaJTIlKCwtLwAwLx0jNDg0LiA3Ki4vLgGIAQgACAgLCgsWDAxAFi4eGh4uLgD/AMIAEQgAGAAYAAMBEQACEQEDABEB/8QAFwAACAMBAAkAAwQGBSEAGBkBAAIMGQIDgAQFAf/aAAwAFwACEAMQAAABowDJrEdlkUUK0QDrWYnOg1QB0UQ5W4AdGxABgSoDAQgqAQIEExIUIQWAHggAjQEFAtDpANZpo5FoSLp9AGtSfUOfBNFLgFWRVkc4oi+BHw4RAh+JPgBYEiEiMgGCHwMBAT8Bd9oARpaK+0b6J5gAZnY6bTOUgq6q04AcHgBtAwpcAQAHgBIRIxMhYXECHgICAR5777IBnjcA43qIfcXAJjAAcsP7BXqz8lYAvYI9F9kgSpeAZxx6ilW0JwEnDQBkAgAoh2QBABECgBITITEDQWKEZQAGPwLIMkBnLwAvVX7B3UmZ+gCPx9XpU1uy/gCmVj29TiF1mJCGD77UgBIaEMCEAwEAhxIRIQAxcVEBhUQ/IVQTAOA1AJ51ZL2wi0W0AOOoFWv3lUU3ALnnKMsl8dluAEVMTvhWTU/OYPA9KsB3BWECJhDwOYW3H0JNQRdAKwkrIBBxITGBRk0Q0wAHjBSLDV3C+ABeD3aaEvUcsSQUv0AOHxHADQEDAgVKDiFBcbExYQiBkaGGTRBdQBoAxBNDV9WLWRYAsyp3WXMUGrAA+QtlOYNgi3gA7wNi8H1tHsl0QZnAExzAOgFhyToAYCExUWFxgyJBOxAAbKJmcMri9d0A+IOOcabopCkAv9y+SusDbnAAM2lOTW3r3NQADNFTZR6yC4oArUKke+zG+wUAafQ68yEIIgEAO1XP/9k='
    $Base64String3 = _WinAPI_Base64Decode($Base64String3)
    Local $tSource = DllStructCreate('byte[' & BinaryLen($Base64String3) & ']')
    DllStructSetData($tSource, 1, $Base64String3)
    Local $tDecompress
    _WinAPI_LZNTDecompress($tSource, $tDecompress, 875)
    $tSource = 0
    Local Const $bString = Binary(DllStructGetData($tDecompress, 1))
    Return $bString
EndFunc   ;==>_Base64String3

Func _WinAPI_Base64Decode($sB64String)
    Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0)
    If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "")
    Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]")
    $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0)
    If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($bBuffer, 1)
EndFunc   ;==>_WinAPI_Base64Decode

Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize)
    $tOutput = DllStructCreate("byte[" & $iBufferSize & "]")
    If @error Then Return SetError(1, 0, 0)
    Local $aRet = DllCall("ntdll.dll", "uint", "RtlDecompressBuffer", "ushort", 0x0002, "struct*", $tOutput, "ulong", $iBufferSize, "struct*", $tInput, "ulong", DllStructGetSize($tInput), "ulong*", 0)
    If @error Then Return SetError(2, 0, 0)
    If $aRet[0] Then Return SetError(3, $aRet[0], 0)
    Return $aRet[6]
EndFunc   ;==>_WinAPI_LZNTDecompress

 

Share this post


Link to post
Share on other sites

You must call _GDIPlus_Startup() before you can use any GDI+ function. ;)

 

Regarding the icon in the menu maybe this will help

 

 


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By matwachich
      AutoIt3 Lua Wrapper
      This is an AutoIt3 wrapper for the Lua scripting language. Consider it beta software, but since I will be using it in commercial product, expect it to evolve.
      It has been developped with Lua 5.3.5. Updates will come for new Lua version.
      Everything works just fine, except one (big) limitation: Anything that throws a Lua error (using C setjmp/longjmp functionality) will crash your AutoIt program. That means that it is impossible to use throw errors from an AutoIt function called by Lua (luaL_check*, lua_error...).
      It is hosted in Github: https://github.com/matwachich/au3lua
      Simple example
      #include <lua.au3> #include <lua_dlls.au3> ; Initialize library _lua_Startup(_lua_ExtractDll()) OnAutoItExitRegister(_lua_Shutdown) ; create new execution state $pState = _luaL_newState() _luaopen_base($pState) ; needed for the lua's print function $iRet = _luaL_doString($pState, 'print("Hello, world!")') If $iRet <> $LUA_OK Then ; read the error description on top of the stack ConsoleWrite("!> Error: " & _lua_toString($pState, -1) & @CRLF) Exit EndIf ; close the state to free memory (you MUST call this function, this is not AutoIt's automatic memory management, it's a C library) _lua_close($pState)
    • By Belini
      I am testing version 2.0.0.0 which runs on windows xp but could not send any command to the player using StdinWrite () does this player support slave mode? Is it possible to send commands to MPV as they are sent to Mplayer?
    • By Zombie02
      Hello Guys i am new to Autoit. I am currently writing a GUI which is displaying a avi. My question now is how can i use a avi i added with Autoit3wrapper
      Thanks is advance
      Zombie
    • By Viszna
      Hello.
      I create a function that saves the log to an html file.
      File html are included picture (conversion to Base64)
      Everything works OK.
      But I do the actions:
      screenshot to the png file (smaller than bmp) per disk (  _ScreenCapture_Capture(@ScriptDir & "\screenshot.png")  ) convert image from disk to base64 I need help to optimize the script:
      - screenshot to memory (do not save to disk) - convert this object to png in memory - invoking the conversion of png image from memory to base64 The first step _ScreenCapture_Capture("") create handle to an HBITMAP in memory
      How to convert image in memory to png?
      How to use Func _ConvertToBase64
      I attach my code
      #include <ScreenCapture.au3> #include <Date.au3> Global $RaportFileName = @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & "_" & @MIN & "_" & @SEC & ".html" $text = "This is first line text" & @CRLF &"and this is next line" _Raport($text, 1) FileWrite(@ScriptDir & "\" & $RaportFileName, "</pre></html>") ; #FUNCTION# ==================================================================================================================== ; Name ..........: _Raport ; Description ...: ; Syntax ........: _Raport($sText1[, $Screen = 0]) ; Parameters ....: $sText1 - a string value. ; $Screen - [optional] an unknown value. Default is 0. ; 0 - Default - do not screenshot ; 1 - added screenshot full desktop ; Return values .: None ; Author ........: Your Name ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func _Raport($sText1, $Screen=0) Local $sText = "" Local $sHead = "" ; Define HTML file header and style $sHead = '<html>' & @CRLF & '<head><meta charset="utf-8"></head>' & @CRLF $sHead = $sHead & '<style>img{border:3px solid #FF0000;}</style>' & @CRLF $sHead = $sHead & '<style>pre{font-family: monospace;}</style>' & @CRLF $sHead = $sHead & '<style>pre{font-size: large;}</style>' & @CRLF $sHead = $sHead & '<pre>' & @CRLF If NOT FileExists(@ScriptDir & "\" & $RaportFileName) Then ; If file Raport not exist then create FileOpen(@ScriptDir & "\" & $RaportFileName, 258) FileWrite(@ScriptDir & "\" & $RaportFileName, $sHead) EndIf If StringInStr($sText1, @CRLF) > 0 Then ; @CRLF (ENTER) change the @CRLF and 11 space (indentation on width "[GG:MM:SS] ") $sText1 = StringReplace($sText1, @CRLF, @CRLF & '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;') EndIf $sText = $sText & $sText1 If $Screen <> 0 Then _ScreenCapture_Capture(@ScriptDir & "\screenshot.png") $sText = $sText & @CRLF & '<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' & '<img src="data:image/png;base64,' & _ConvertToBase64(@ScriptDir & "\screenshot.png") & '"/>' EndIf FileWrite(@ScriptDir & "\" & $RaportFileName, "[" & _NowTime(5) & "]&nbsp;" & $sText & "<br><br>"&@CRLF) ; write to file Raport EndFunc Func _ConvertToBase64($fFile) ;Xroot 2011 ;ClipPut("") ;$FN=@ScriptDir & "\screenshot.png" $FN=$fFile $dat=FileRead(FileOpen($FN,16)) $objXML=ObjCreate("MSXML2.DOMDocument") $objNode=$objXML.createElement("b64") $objNode.dataType="bin.base64" $objNode.nodeTypedValue=$dat ClipPut("") $Wynik = "" ;ClipPut($objNode.Text) $Wynik = $objNode.Text Return $Wynik EndFunc P.S.
      Excuse me my not good English.
    • By vin1
      i have a script that selects  a text file and deletes a line (text input required) in the text file selected
      i have to make it remove all lines found on a file i name, toRemoveLines.txt
      it has to remove lines from all text files found in a folder
      this is the script that has to be modified
      where it says "select file" it has to be "select folder"
      where it says "line text input" it has to be all lines from a text file
      #Include <File.au3> Global $success = False $file_name = FileOpenDialog("Select file", @ScriptDir, "All files (*.*)", 1+4) $line_text_input = InputBox("Line's text", "Line must contain following text:", "line contains this text") $file_count_lines = _FileCountLines($file_name) for $i = 0 to $file_count_lines $Lines_text_output = FileReadLine($file_name, $i) if StringInStr($Lines_text_output, $line_text_input) then _FileWriteToLine($file_name, $i, "", 1) $success = True ExitLoop EndIf Next if $success = True Then MsgBox(0, "Success", "Line has been deleted") Else MsgBox(0, "Failure", "Line wasn't found") EndIf  
×
×
  • Create New...