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 &= '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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 &= 'Xv62Xl4BSl4OIS/+tl5eAUpeXm5eXtxeXl5eXl5uXl5eXl5eXl5eXgG4Xi8hDl7MXnwhL15+Xv5YXi8hzl7+WF4QXhBezF7MXuxezF7MXsxeAVpeAA8ASgAAAfICFgADAAcADgAVABkAHQAhACgALwAzADcAOwA/AEMARwAAASM1MwcjNTMTIzUzMhYVJSM1NDY7AQEjNTMlIzUzFyM1MxcUBisBNTMlIyImPQEzEyM1MwcjNTM3IzUzFSM1MxEjNTMRIzUzAfJeXm5eXm5eDiEv/rZeLyEOAUpeXv62Xl7cXl5uLyEOXv62DiEvXtxeXtxeXm5eXl5eXl5eXgG4Xl5e/sZeLyHODiEv/lhefl7MXuohL15+LyEO/sZeXl7sXsxe/sZeAVpeAAAMAEoAAAHyAhYAAwAHAAsADwATABcAGwAfACMAJwArAC8AAAEjNTMHIzUzByM1MxcjNTMVIzUzFSM1MxUjNTMnIzUzFSM1MxUjNTMVIzUzESM1MwHyXl5uXl7cXl7cXl5eXl5eXl5uXl5eXl5eXl5eXgG4Xl5eXl7MXsxezF7MXuxezF7MXsxeAVpeABAASgAAAfICFgADAAcACwAPABMAFwAbAB8AIwAnAC4AMgA2ADoAPgBCAAABIzUzFSM1MxUjNTMlIzUzASM1MyUjNTMBIzUzJSM1MxUjNTMXIzUzByMiJj0BMzcjNTMVIzUzFSM1MxUjNTMRIzUzAfJeXl5eXl7+tl5eAUpeXv62Xl4BSl5e/rZeXl5e3F5e3A4hL15uXl5eXl5eXl5eXgG4XsxezF5+Xv5YXn5e/lhefl7MXsxeXi8hDuxezF7MXsxeAVpeABAASgAAAfICFgADAAcACwAPABMAFwAeACIAJgAqADEANQA5AD0AQQBFAAABIzUzFSM1MxUjNTMlIzUzASM1MyUjNTMBFAYrATUzJSM1MxUjNTMXIzUzByMiJj0BMzcjNTMVIzUzFSM1MxUjNTMRIzUzAfJeXl5eXl7+tl5eAUpeXv62Xl4BSi8hDl7+tl5eXl7cXl7cDiEvXm5eXl5eXl5eXl5eAbhezF7MXn5e/lhefl7+qCEvXn5ezF7MXl4vIQ7sXsxezF7MXgFaXgAAFgBKAAACzgIWAAMABwALAA8AEwAXABsAHwAmACoALgA1ADkAQABEAEgATwBTAFcAWwBfAGMAAAEjNTMVIzUzJyM1MxMjNTMnIzUzEyM1MyUjNTMBIzUzFxQGKwE1MyUjNTMBIzUzFyMiJj0BMyUjNTMFFAYrATUzJSM1MxcjNTMHIyImPQEzNyM1MxUjNTMVIzUzFSM1MxEjNTMCzl5eXl7cXl7cXl7cXl7cXl792l5eAUpeXtwvIQ5e/dpeXgFKXl5uDiEvXv5IXl4BSi8hDl7+tl5e3F5e3A4hL15uXl5eXl5eXl5eXgG4XsxeEF7+xl4QXv7GXuxe/sZe6iEvXuxe/sZezC8hDn5e6iEvXhBezF5eLyEO7F7MXsxezF4BWl4AABAASgAAAfICFgADAAcADgASABkAHQAhACgALAAzADcAOwA/AEMARwBLAAABIzUzFSM1MxUUBisBNTMlIzUzASM1MzIWFSUjNTMBIzUzJSMiJj0BMxcjNTMHIzU0NjsBFSM1MzcjNTMVIzUzFSM1MxUjNTMRIzUzAfJeXl5eLyEOXv62Xl4BSl4OIS/+tl5eAUpeXv62DiEvXtxeXtxeLyEOXl5uXl5eXl5eXl5eXgG4XsxefCEvXn5e/lheLyHOXv5YXn4vIQ7MXl4OIS/MXuxezF7MXsxeAVpeAAAPAEoAAAHyAhYAAwAHAAsADwATABcAGwAiACkALQAxADUAOQA9AEEAAAEjNTMVIzUzFSM1MyUjNTMBIzUzJSM1MxcjNTMXFAYrATUzJSMiJj0BMxMjNTMHIzUzNyM1MxUjNTMRIzUzESM1MwHyXl5eXl5e/rZeXgFKXl7+tl5e3F5ebi8hDl7+tg4hL17cXl7c'
    $Base64String &= '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'
    $Base64String &= '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'
    $Base64String &= 'AAABIzUzMhYVByM1MxcjNTMnIzUzEyM1MyUjNTMBIzUzJSM1MwEjNTMlIzUzFSM1MxUjNTM3IzUzFSM1MxUjNTMVIzUzAfJeDiEvbl5ebl5e3F5e3F5e/rZeXgFKXl7+tl5eAUpeXv62Xl5eXl5ebl5eXl5eXl5eAbheLyEOXsxeEF7+xl5+Xv5YXn5e/lhefl7MXsxe7F7MXsxezF7//wBKAAAB8gIWAAYAMgAAABAASgAAAfICFgAGAAoADgASABYAHQAkACgALAAwADQAOAA8AEAARABIAAABIzUzMhYVByM1MxcjNTMnIzUzEyM1MyUjNTQ2OwEBFAYrATUzJSM1MxMjNTMnIzUzFyM1MwcjNTMVIzUzNyM1MxUjNTMRIzUzAfJeDiEvbl5ebl5e3F5e3F5e/rZeLyEOAUovIQ5e/rZeXtxeXtxeXm5eXm5eXl5ebl5eXl5eXgG4Xi8hDl7MXhBe/sZefg4hL/6oIS9efl7+xl4QXsxeXl7MXuxezF7+xl4AABAASgAAAfICFgAGAAoADgASABYAHQAhACUAKQAtADEANQA5AD0AQQBFAAATMzUjIgYdATM1IzczNSMDMzUjJTM1IwEUFjsBNSMlMzUjFTM1IwczNSMXMzUjFTM1IyczNSMVMzUjFTM1IxUzNSMRMzUjSl4OIS9eXm5eXm5eXgFKXl7+ti8hDl4BSl5eXl7cXl7cXl5eXm5eXl5eXl5eXl5eAbheLyF8XhBe/sZefl7+qCEvXn5ezF7MXl5ezF7sXsxezF7MXgFaXgAOAEoAAAHyAhYABgAKAA4AEgAWABoAHgAiACYAKgAuADIANgA6AAABIzUzMhYVByM1MxcjNTMnIzUzEyM1MyUjNTMVIzUzFSM1MxUjNTMVIzUzNyM1MxUjNTMVIzUzFSM1MwHyXg4hL25eXm5eXtxeXtxeXv62Xl5eXl5eXl5eXm5eXl5eXl5eXgG4Xi8hDl7MXhBe/sZefl7MXsxezF7MXuxezF7MXsxe//8ASgAAAfICFgAGADYAAAAPAEoAAAHyAhYAAwAHAAsADwATABcAHgAiACYAKgAuADUAOQA9AEEAAAEjNTMHIzUzJyM1MxcjNTMTIzUzJSM1MwEUBisBNTMlIzUzEyM1MycjNTMXIzUzByMiJj0BMzcjNTMVIzUzNSM1MwHyXl5uXl7cXl5uXl7cXl7+tl5eAUovIQ5e/rZeXtxeXtxeXm5eXm4OIS9ebl5eXl5eXgFKXl5eEF7MXv7GXn5e/qghL15+Xv7GXhBezF5eLyEOfl7MXuxeAP//AEoAAAHyAhYABgA4AAD//wBKAAAB8gIWAAYAOQAA//8ASgAAAs4CFgAGADoAAP//AEoAAAHyAhYABgA7AAD//wBKAAAB8gIWAAYAPAAA//8ASgAAAfICFgAGAD0AAAAHAEoAAAEWAhYAAwAKAA4AEgAWABoAIQCeQFQBIiJAIwAZGAIDAQIaFwMDACEbFhMSDw4LCgkEAiAfFRQREA0MBgkFBQQBAwAEAgwLBA4NEhEEEA8WFQQUEyEgGgMZBBccGxgDFwAKCQMDAgEBBUZ2LzcYAD8XPD8XPBD9FzwvPP08Lzz9PC88/TwQ/Rc8AS8XPP0XPC8XPP0XPAAxMAFJaLkABQAiSWhhsEBSWDgRN7kAIv/AOFkBIzUzByM1NDY7ARUjNTMVIzUzFSM1MxcjNTMHIyImPQEzARZeXm5eLyEOXl5eXl5ebl5ebg4hL14BuF5eDiEvzF7MXsxezF5eLyEOAAcASv+SAKgChAADAAcACwAPABMAFwAbAJVATQEcHEAdABsaFxYbGBcUExAPDAsIBwQDDQACGhkWFRIRDg0KCQYFAg0BAQAEAgUEBAYJCAQLCg8OBA0MExIEERADAhkYFRQABwYBAQFGdi83GAA/PD88LzwvPC88/TwvPP08Lzz9PBD9PBD9PAEvFzz9FzwALi4uLjEwAUlouQABABxJaGGwQFJYOBE3'
    $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 &= '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
Posted (edited)

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 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  
    • By nacerbaaziz
      Hello
      I have a query please
      It is about windows file explorer
      If i design a tool in autoit language to delete files for example
      and i  added it in the context menu in File Explorer
      If i right-click on any file And you choose the tool, it will be get the path of the selected file or folder
      The problem here is
      If i select a set of files or folders
      it only detect the first one
      The code that i  used is
      if $CMDLine[0] = 0 then
      msgBox(16, "error", "you don't selecte any files")
      exit
      else
      for $i = 1 to $CMDLine[0]
      msgBox(0, "files", $CMDLine[$i]
      next
      endIf
      exit
    • By TheSaint
      Files Checklist
      Just a simple little (complex enough) program I whipped up, for a purpose ... but only too happy to share.
      It can of course be modified to do more, but at the moment just compares file names with or without path ... Location versus Checklist.
      There are of course other compare programs out there, most doing a lot more than mine (i.e. WinMerge or FileComparer). But I wanted something quick and simple with drag & drop, that uses up a smallish amount of screen real estate.
      NOTE - The SAVE button is also a LOAD one, and displays 'Load' when the list is empty. So you can save and load specific lists. While in SAVE mode, the button can also be used with CTRL held down, to ADD another list to existing (displayed one) ... combining as they say ... though not saved until you SAVE. CLEAR button removes a selected entry, or if used with CTRL held down, queries about removing all listed entries.
              
      Files Checklist v1.2.zip
      Files Checklist v1.3.zip
      Files Checklist v1.4.zip  (Includes a BUGFIX.)
        (source included)
      WARNING - While this program does not act on files or folders ADDED or CHECKED, you might act on the results, so I advise caution, and I also recommend using the new 'Relative' option in v1.3 or newer ... but you still need to understand what you are doing and what the results actually mean. Some basic examples in the next post.
      Enjoy!
      RELATED
      Users might also be interested in another somewhat related program of mine.
      DeleteIf Same
      Cheers!
    • By nacerbaaziz
      Hello all
      I have a question please
      I've searched a lot on how to make a GUI for programs designed by Autoit to accepts dragging files from Windows File Explorer
      Unfortunately, however, it failed
      Is there any way to do this?
      Where I am making a audio player and I want to activate the feature of dragging files from Windows Explorer to a program window to play them
      I hope to find a simple solution here in this wonderful forum
      Thank you very much in advance
×
×
  • Create New...