Morgen,
weiß jemand wie ich GUICtrlSetImage mit PNG verwenden kann. Oder wie ich ein PNG auf einen Button bekomme?
Morgen,
weiß jemand wie ich GUICtrlSetImage mit PNG verwenden kann. Oder wie ich ein PNG auf einen Button bekomme?
Danke. Damit hab es aber schon probiert. Ich will ja trotzdem den Button beibehalten. Also den typischen rechteckigen Button.
Versuche es mal damit:
;coded by UEZ 2011
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
#include <Memory.au3>
Global Const $IMAGE_BITMAP = 0
Global Const $STM_SETIMAGE = 0x0172
Global $msg
Global Const $hGUI = GUICreate("Test", 600, 250)
Global Const $idLogo = GUICtrlCreatePic("", 215, 20, 169, 68)
Global Const $idButton = GUICtrlCreateButton("", 266, 150, 78 , 81, $BS_BITMAP)
Global Const $hButton = GUICtrlGetHandle($idButton)
Global Const $Bmp_Logo = Load_BMP_From_Mem(Logo4_GIF(), True)
_WinAPI_DeleteObject(GUICtrlSendMsg($idLogo, $STM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Logo))
Global Const $Bmp_Button = Load_BMP_From_Mem(Merlin_GIF(), True)
_WinAPI_DeleteObject(_SendMessage($hButton, $BM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Button))
;~ _WinAPI_UpdateWindow($hButton)
GUISetState()
While True
$msg = GUIGetMsg()
Switch $msg
Case $idLogo
MsgBox(0, "Information", "Bild wurde geklickt!")
Case $idButton
MsgBox(0, "Information", "Button wurde geklickt!")
Case $GUI_EVENT_CLOSE
_WinAPI_DeleteObject($Bmp_Logo)
_WinAPI_DeleteObject($Bmp_Button)
GUIDelete($hGUI)
Exit
EndSwitch
WEnd
;======================================================================================
; Function Name: Load_BMP_From_Mem
; Description: Loads an image which is saved as a binary string and converts it to a bitmap or hbitmap
;
; Parameters: $bImage: the binary string which contains any valid image which is supported by GDI+
; Optional: $hHBITMAP: if false a bitmap will be created, if true a hbitmap will be created
;
; Remark: hbitmap format is used generally for GUI internal images, $bitmap is more a GDI+ image format
;
; Requirement(s): GDIPlus.au3, Memory.au3 and _GDIPlus_BitmapCreateDIBFromBitmap() from WinAPIEx.au3
; Return Value(s): Success: handle to bitmap or hbitmap, Error: 0
; Error codes: 1: $bImage is not a binary string
; 2: unable to create stream on HGlobal
; 3: unable to create bitmap from stream
;
; Author(s): UEZ
; Additional Code: thanks to progandy for the MemGlobalAlloc and tVARIANT lines
; Version: v0.96 Build 2011-31-12 Beta
;=======================================================================================
Func Load_BMP_From_Mem($bImage, $hHBITMAP = False)
If Not IsBinary($bImage) Then Return SetError(1, 0, 0)
Local $declared = True
If Not $ghGDIPDll Then
_GDIPlus_Startup()
$declared = False
EndIf
Local $aResult
Local Const $memBitmap = Binary($bImage) ;load image saved in variable (memory) and convert it to binary
Local Const $len = BinaryLen($memBitmap) ;get length of image
Local Const $hData = _MemGlobalAlloc($len, $GMEM_MOVEABLE) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002)
Local Const $pData = _MemGlobalLock($hData) ;translate the handle into a pointer
Local $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct
DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data
_MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE
$aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0) ;Creates a stream object that uses an HGLOBAL memory handle to store the stream contents
If @error Then SetError(2, 0, 0)
Local Const $hStream = $aResult[3]
$aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) ;Creates a Bitmap object based on an IStream COM interface
If @error Then SetError(3, 0, 0)
Local Const $hBitmap = $aResult[2]
Local $tVARIANT = DllStructCreate("word vt;word r1;word r2;word r3;ptr data; ptr")
DllCall("oleaut32.dll", "long", "DispCallFunc", "ptr", $hStream, "dword", 8 + 8 * @AutoItX64, _
"dword", 4, "dword", 23, "dword", 0, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr($tVARIANT)) ;release memory from $hStream to avoid memory leak
$tMem = 0
$tVARIANT = 0
If $hHBITMAP Then
Local Const $hHBmp = _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
_GDIPlus_BitmapDispose($hBitmap)
If Not $declared Then _GDIPlus_Shutdown()
Return $hHBmp
EndIf
If Not $declared Then _GDIPlus_Shutdown()
Return $hBitmap
EndFunc ;==>Load_BMP_From_Mem
Func _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
Local $tBIHDR, $Ret, $tData, $pBits, $hResult = 0
$Ret = DllCall($ghGDIPDll, 'uint', 'GdipGetImageDimension', 'ptr', $hBitmap, 'float*', 0, 'float*', 0)
If (@error) Or ($Ret[0]) Then Return 0
$tData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $Ret[2], $Ret[3], $GDIP_ILMREAD, $GDIP_PXF32ARGB)
$pBits = DllStructGetData($tData, 'Scan0')
If Not $pBits Then Return 0
$tBIHDR = DllStructCreate('dword;long;long;ushort;ushort;dword;dword;long;long;dword;dword')
DllStructSetData($tBIHDR, 1, DllStructGetSize($tBIHDR))
DllStructSetData($tBIHDR, 2, $Ret[2])
DllStructSetData($tBIHDR, 3, $Ret[3])
DllStructSetData($tBIHDR, 4, 1)
DllStructSetData($tBIHDR, 5, 32)
DllStructSetData($tBIHDR, 6, 0)
$hResult = DllCall('gdi32.dll', 'ptr', 'CreateDIBSection', 'hwnd', 0, 'ptr', DllStructGetPtr($tBIHDR), 'uint', 0, 'ptr*', 0, 'ptr', 0, 'dword', 0)
If (Not @error) And ($hResult[0]) Then
DllCall('gdi32.dll', 'dword', 'SetBitmapBits', 'ptr', $hResult[0], 'dword', $Ret[2] * $Ret[3] * 4, 'ptr', DllStructGetData($tData, 'Scan0'))
$hResult = $hResult[0]
Else
$hResult = 0
EndIf
_GDIPlus_BitmapUnlockBits($hBitmap, $tData)
Return $hResult
EndFunc ;==>_GDIPlus_BitmapCreateDIBFromBitmap
Func Logo4_GIF()
Local _
$Logo4_GIF = '0x474946383961A9004400F700009292924040406A6A6BE1E1E1CDD8E35689B66499C6C3CDD8BFBFBFEDEDED3A648DDBE3ECA5BED69AB1C75A94CC33333579A3C8C6C6C699BDE0AAAAAAD0DBE5E6ECF1A7C2DD949DA67F7F7F848484F1F1F1B0B0B0B8C0C9E8E8E8FCFCFCA3C3E2212125B4B8C74C5863D5D5D5F4F4F45B687471727246719A515C684C4C8D00004236367C989898A0A1A1A4A4A49D9D9DCECECE8B99A55B5B5B6795B9B9B9B93647578BB4DD677684C8C8C800007B92ACC5606061A5ADB54365868D8D8D9ABBDB5252525783ABD9D9D97B8894C1C1C12A4764548EC757799979818BE4E4E499A2AE00006A000024010134D1D1D192B2D1707B85ADADAD416C96C7D2DC83ACD4A9B0BBB6B6B6000054E6E6E623237994B9DE7CA9D3606C78838C94ABC9E6DCDCDC49494A7DACD9000073FAFAFA65717D4D83BA9BADBE87919B56636EA8C6E343495627384A8AACCD3A5269749AB972A4D38989892A2A2ED4DEE727415B4B7DACF6F6F6CAD5E0F8F8F80000128787A74B79A2111111233C54EBF0F493A2B0BBC5CF9898B9181B26527DA6EAEAEA669DD06187A8C3C4D099B5D293B6D834537118187C344B616DA2D4333A4344515D9AA7B3DFDFDF8EA3B8797979788CA09DC0E2889EB48EB0D247617AA3B9CE0000609EA9B5385E8435597DB3B3B37691AB5B91BE9EBAD585B1DBD6E0E9AEBAC41B2434ABB6C1'
$Logo4_GIF &= '67678981A4C26B92B00707071010317F868D90979FD0D2DB405C783C5E7E729EC44679AC3D5A751F34496DA0CC1C1C69B1CCE850719185AACD9FB6CB4374A233404DE0E7EE5959847375769599A1666769A1B4C6B0B3B52424562F51730B0B7D7A7AA724303B3154770D0D7693A7B9BBBBBC707981487DB1A7A7A781A7C93D566EAECAE70909648EA8C179A6D00C0C4E1414454F83AFFEFEFEEEF3F6F0F4F7B1B6BAB7B7B7A0BFDDA9A9C3C4C4C41019227AA1BFA1A7AC628FB34D6C8943437445457FCBCBCB2E4D6BA1A5A8ABABAB7C7C7D9A9A9B5089C1E3E9EF3B3B5FE8E8ED6B6B9F77779075A7D678A9D787B0D669839B90B8DEE9E9E9D9E1E9D9D9E110106B0E0E28000000FFFFFF00008021F90400000000002C00000000A90044000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C99328538ECC92224F1E532BF6E55049B3A6C71521FCE9F4A0E10B915E326D0A1D2AD1984E7FD8EA9020A101DF8816C3C4CC244A9564B22C2B56982BB7228BA264530DE6D9A96190D9B3589E460D5BB56D4645E6F2188257A76E1D0D09060D88F0AB5716B00353E8AC93B785A475EBE0981D80234335316E23572CB6025082A3FE3C8CA9BB5429DE0123D4F5AA95A3183C7F2406E11B14E001302001F0C98664454D26B692732F3467E8A80712793B081F3E1C'
$Logo4_GIF &= '5FDE244288E4019439816C7C6004747821038BF024E724595BA2BB7BC22C397502FFC7475C3896F3E8D377B04E82307104113A6400323CC90816A46E7BDF3F301E369D4D61914412907CC3822F2838A2A0083B20E1020C034698846C024A9884000F5871DE802338F3C01590F1D75D32DE88874F84060A20020A687071C38B379081060A22F8E2821316E698040B0F0010E100424CD0880A218A289922ADE8944007032E83810868DC30440C7E286386190D5CF9C80593DC80C60E2C40A8230D3424E1830C03A4095A0B0F1069E491FAF873073E699EE3030A5C4CE90796C1E482C99F98E4124C968FF83144093BBC20849A6A060046121880A126247692E2E69B6D21895A12696E000C1A7A36100C260C946AAAA9810673A51243A0B14E048C0EFF00061000C8000624690A818000AA5CC11DA655E544028190B4800219675462869FA55AE0AC05693C8B6A2E84C6C00530CB40A22D24EB082089091968FB050C2D04D0C4153389A1C2BAECB67BA96EEABAABC2152119830D09037CF1450B22901143240DE4020A03DD3C9BC6C1083BDB0D03A0506B86327E9450020DFA566CF1174E74024C202A64F28F18206020F2C8246300C2AF92815CB2C83BA8F0D10A1AE0ABAFB125FCDBC0210377F3C107087B114D345E1CFC8105DD7403CA210DE8A04C0C9708B0CCC5FA0A014327BEC471AE54990480D9D63A81A1026E132D91C9'
$Logo4_GIF &= 'D864A34C51D65CFBA30E1EE992ED3645C518320616420489023493008C73D11FE8FFFC81175E58306A1AD1A4B173DF3F1CDDC034914CD2860944D45DF7084E7CE3820056ABB0C44C2A6090F6515FC8D004D8115DF14000A8A7FEA145686F3D40067888B10408A9D7DEC444BDD4318810232060C2223744A2C32187FCD00D25C8EF9C8B12EA188280386658B03325DD48F003224F285D09396DC031C2F7239CB341066080D084E65335E1C3E7A8E1000C134552C404025CD3C07645AD1FA5C1AE782CD139D71EE807E914528C566800129483431B2EE1091D3C01113F90800491478948B0A2157DC8A03B42E08743204F823FD0C2212CC1387B40030D2E001F02E0400A7ECCEB365399DF51B041C3FF604303D989DD456488993AB040870611C315FFD8E5AB83E42F33F8E0860062F7BFAD9DA31F666B480A06619F117402056D384225D8F0402D684182129CC62AF2D1876C68431B7DC04229620046097811119660C3293CD18336F822024E70C23224E1C24C4885207880816FEE70070FFCA70E4E70011405228626F4E39190EC47131A1949484E92873AC1C600D881077411E40A4C00011046B68307F4E35DFF38A20792B844FF790E331DC0413F4004912A2440084E804106167189429C820D96B8873085A9857B0CE10F1528E319B35101399CC113C51CA60D2C818B3992C31522B8911388000052D0B220FDE861023470'
$Logo4_GIF &= '87FFDC61042E4885C7FED1C4AD9DF295EEDC43000499C9DFE000757B0851131E40FF3FAE2500037B70994054994413E0810901680166789200D49DCC2159C0552EAD80824490A3101060433D6CC0D17BD8E01EF6B8C0022A90CC0CF6A1020BF80617DCC0D196D60317CF98C12D7AB0086644000638880210BE3990D9F946031DD8C01874728720C541A0ED3C0A0C24094FD0F5436BEC234123E8D5841DB04F279078C0ED5209D59D14140FE1641F364C30BA86F402393080010B6AE08A1314001654A84728E63A574F904114BCE0853B484A5277F082024AE00215E81A0A2A6C0102E338420F6481820DC0E01C5630812AA2983F0F24001251B8834EC630804E988B734DF5C7085EC0D4AD8D200A4FE51A367E23844E1C55054058286892A0D9A3FF24600F1E2328370C1A56CCAC165FCB00C2241BA2840138E11CDFF045117A70840218600B61886E742180020E2C80170B58403EF2915DEC8AE200CC388274C3400F6A40A0008290822C16C18273E000013EF0265BAE60D5CDA6050E24D8490782CB04D0628604110040698F42021CB023B548B1611D20B10C00F802042AC003248E72077201A0130318AA9232D05F824616AC3BF94F663A60205F04007E0C49C639BE708E73744204E8E8011D0AF08937CC831E38A6C72D582187EC8A620A7FE0C00128B0DD7C50A0142238023DE6C1E4371800BD279045112441847310E1'
$Logo4_GIF &= '05538D5F3BEFC01801D0209309888024749854000BB8094D35733F40D089248CE1FF3F9625C23A1CAA8207602601914D451C06E19B2410610F62EB2A129578D00D38810422462400C01000F3C50F215970C20870F00D76D420115298F1271CC0883774FA165C2080284421870354E10CCC50C21F082007524F81158E3040A71941080740F9154540C304704004670041730461C20628AC2B192C83C0E7801D64CA1CE0018B27023E38251EFA39E24E00010F78389F097C13D41D80D83703B0C25175BB44153021CD1158473FB2AD9F85AC20971158C62AE6908813CCD8080E2004211821885DFC61D43F2E45AB7621021E1C800014900305FE500259E8BBD64628001D4EB0097438C20711F846147630D96053BB0E23B0C2038E3D1827B46091CCFF3E33BAA3BD044C7AA0039DF0762696A03E6E776289BDF5C71820B101E192BB7F65FE46066629864723A4178FFD8615B830074E64BA1DF87680030CB00825249C027618C519D0D00868D4000AA39802C2B15E8A5DF440EA0E30423B265EF11AD894085100862ADAFD0F3C5C463C3098C003E0794E67EC815E2977366AA00D459777C00AC0E8DF3F0CFFE19C8FE10BEA000313AE20E85512DA95FFFD06CB1F620A1C4480081B4041D34F108B321821EAC8E0821D144E010E586B173598F83162F007B153800007880129E89076B5B31D1D73E002111010055ED13DE71A8840'
$Logo4_GIF &= '0B5201CFC747E1A8EC44B7CAFF4BF89653DBF2AD5CFCF5BFEAF82F4C40F2945F28FF2B81BEF2453A441E9426C28B9B2E85D29FDE010AD8C590294081033CE2063558C3098C608057D4C0E004807004C001685004A7670465100BBA50717C800644B00CEA20599EC45533940008C002FDB06D9B950456205C39107868467D2CE772E3C71D24B85BDFB6595FE00CE0577925C86C9B777EDF8000CBB07E4E577A505706A4F00863676A482002C7200BCE956F6D40067F6007014800535076E8707A65D00C52C08068408313200081308195850F568001088644082003F00382E5677DBE5182DA578628D87D2C38792E787930687E0D610A345883A27783650075E8000576407F5977065CD0088B70028210048428086BA009489884077001A42005EDFF908052C009E8C0075CB00C34E00C72F74DEDE40158D009062568613666EA227D82076023B87D84061927C85B98F1786B187E68D84A6F18450A610EDC40269DC0057C800C0A100BCDD00EC8E008F347007FA00450A00635407028B08C342202CCB087B717807F40067C500690C80945E07634C00D2EC0711358733B3108D0860776466030E003E4477DD34760D57782D9B78A29A8732BD882E2E78663F810EFD009DB6805ABC007C4A000BAD00C0A400A1CD0839A307035F007B7178D49487FF4178076500A6A5004CDA00B0A800C73E0085D40039DF00240D02B31446DF7'
$Logo4_GIF &= '820FEA967388A44898C78EEBF86CA7188B8A078F6A488F2E99922C09870C510B51FF40035660052F3007E8B009BA100BB31003D0B884674006B0A709A2905D4CA95DA4E6900E79007E400AC46091C4C00725D00256B00100602EED1648574561233001203044A41882ECD8925E757967B896AC7814AE28936B298BF7E810C9A0959D60052F56044E3707287070F5370AAC70036AD0064840014C59644F490076300507E098077000A30005A4B00992380BABD0099D300119A055EBF40F3977558FB7016D2286225878A8B844AA888A6FA982AFD88674799AB498103980041BA0999D0005FE5804C71076A5B02547A9207F596A1C509CC5390AA3500A55C0039AF0084AF09C7E700143B00BB38091B330011BB0012D60021CF32B20B3353494361EFF90043400044C609A69899A33D99683D69A3A27042E209783169BE9399B089103E5E00CD9B901CEB00645000E25800432C22209D20835D0054A7001ACF00B17D0A00A7A065D80045040065C500233B28C0A12087CC0078EC00D1B10052C2003FCF04D4794141DC03B5F3008750067834004EF8396CFB69283A796484403EFB87D34E09EE7C40E27068B73998E04860331E810B5F002EA909DDC200273C007A4000E81400A507A0C6B7009B7C0225CC00C48B00A5DD005AB80043750020952038D700CC700A581000EE0400A7C300B5DD00951E00C70602EDF445F0BD50108'
$Logo4_GIF &= 'C00E00E00C3090001E80141A8003EB906D69760E2707A333AA9E3B9100446050AAFF386C604604189082F7622756F37334891A307060F68910628001CEA00E51B001BF300BE8C0090A20057A700D055000E36000D44005C084330C6001A572343AF00CB0E00633F00905700D7A609545C007BBC00D51A00E2F6002E6D36E49350623C0A30F00062CA00147510730405A867A073E518AED2892242004E8C81DED742F42C049BD655934B00E10E6A3F309A444C56036C91039F00EECE00C13300134A0A4BC4807EDB069FB360F61F05112F037D1600BB650381F2001F7100A61F006846000B6460752609D6DAA0E2EE00360E04245226C3D748E817050BE8019E734017B60A83CA10101D00FD476A864F8534900029244A709F61B1E204FD33AAE3BFFD00F63039BEC9A19780104FD30790FB10F19D002F47AA4FEB90927700DED6000B2E6AF36A0059420B0046BB0081B0A5BC0B006F009D76091C12A02CB3001CEF00255732E618149A8710E700061D72A04EA7054B1954957658A50D4042FB0137D8A19EBD0047B800531F3660034001BE00B0FD03F960AB31E6048984103FDE510F10A002E50AF9DB00AA40A90D7F00906400B6F1006A1F045526B0B4173B0F76058B490B5BE2A0557B906C2F0A62D0007170B6C03D10FD28A0D099000E49901E0B02E1A88171D0003CE602E7B4018E3C41483D00109300677801709300034'
$Logo4_GIF &= '30744B70053290045F000958304E840103A2D304020003233000095007FF359692FF0004A94024AD031C83101A89B70420D301FA920483D0BDDD0A0740D410D2E00BECE002CEE00C088006FE88AA957BB95B500F882001510B389FDB0D5A6003610001B4C0AB10CB0973300B67D009CEE0022C2000E6C353A0E90F426005EA30012E0007C080B359830F1A07B6EC800127D604BE408308800056D0023E80013B30015150AF212C008B746E2EF002F85BAF2FA0C24CD07226F0B856800038D0620830013E200060B0074C701B59F3A71B00B6417C6DDCD1044010B6443B01140B0732A0788C3B0C1970BF2EE002CB20027CE0747A1004960B01010C41517B38088C0854C0C03350007A2005B886993470C6EC30672E643659430334BC0332200340FFE0B362F300CEE00B889CC840207999D004329001DF22003210007BD008C080C888BCC88B9409080504897CCA40F000F0D372AE6102BE200992E00B02B00360F000A930793391090FA00E9210C98A0C068A97034D1007B372CABF2CC60E21066AE0032FD0022DE0020880026B8CAA41D0AAB0F00CF5F0403FB0CDD7134710000B335008E9D5C7ABB00CCECC0EF3C10F4D407702E14895F44843FC0FEE5C497840242DB7077190CF7B70504CF0CE3FEB9D11F6CE930719C28C077B0002F91C0720B007EBD6316131CF91946D21920357806DF43C5C0F9103D2B0033EC00ECE'
$Logo4_GIF &= '0CCDFC9B080AA00782300E33000BA7800B5CF4044F1047CF100E6E300E41A0073DFF808D6BD005E6DC022F00C6193C9BB2B304401DD49BC348421DD47F940334C704E739734557D4401D1639D0D445FD478C34444ACD04E7C3D4B8F1D353CD1651EDD4549DD1D520001DEDCC2D4004675003E8F00AE4A0078560D26E100EA730D7E100D3A820CEB7F00A89300722B001DC70CE3EB00371709E430D12511DD61B91038A5D74882D1462600D020007ECF002CDAC8F25406F3D400E47100485800A9EEDD9855008473053EB550343100113A0D32C000782BDD403042C91F1D83B90010040D93EBC0C51C0058B9008AED003B77004C00DDCB7400EAF000D8B000D4850833A8DA718200371D047AF0DDBB15D0D4020093EC002B68DC6CB70013780456DFF000DB2200BD0F0DD6880043CF00D9DD00293CD023E10BE20B0D44627DDDD21440F2000B4CD02EC90DF2F30011E9A0EBFD00543D00567F00B3CB00D56D0C32FC00E2C000019000C011008591DDDF29D3299600D60002E00C002F83DD9CE200CCB4004208E0034C09F09AEE00C6E0240F0DCE753D813FE26B2530DA400042680013E90E11B9EDF389EDF1A0E00332C0029AECEF3D2D82D2E22519D09D5100801200326B00E19E003350E0050CEE33E9001EB60029BFCDC2E7405EC3CE4C052E457A00AA4F0AC40B003C0200066FEC993DC688100E45A2EE45C8E298B9D0957'
$Logo4_GIF &= 'F0E5AAA00A4F0A02A4000281A00AEA7C3E73AEBE12FEE698D2D4723EE7EB32447320EE2B802EE88C5E108A7DD88C5D748ADDE8945EE9967EE9989EE99ABEE99C1E10003B'
Return Binary($Logo4_GIF)
EndFunc
Func Merlin_GIF()
Local _
$Merlin_GIF = '0x47494638396144004700F70000FFFFFF1831711C357D182D6D1C3982182D691C35791C3986CACACA1831751C3D9614246118316D14286914357D1835791C398A183575204192142D65C2C2C2BE9296142459203D92AEAAAEC69A9AB2B2B6BAB6B6CACACEBEAA41142D7520398A395D9618358614317DA29E9E1028751C3D8A0C2455797979A27D7918316941699ECEA2A23D4955101C4955595961656100041C86828214358E182861B6A23DEBEBEBBEBEBE142D71E7B2B220419EB28E8E10246D2D3959DFA6AA10245D8E8A8EA29641696969CAB241202D49082065C6C6CA0C1C516165556979927D61616186B2183179AAAAAAC6C6C2969296DBDBDF243D718A71712031591C3582DFAEAE8E7D86A2A6A6314579866969AA828214285D20316910246592928E1031860410353D5D92F3F3F328499A14399A14203D3539497D754986868E0C2059A28282E3E3E3081024AE9A3D967171454545355992494D61AE8A8E7175797D869ED7A2A26555554D4D51B69296DBD7D7394969928A4D555D65D7A6AA8A7D39142855CAA6AA203982EBCACE5D6569AE9A359E9E9E715959183161B6C2DF5186C22D4169928A55414965BABABE615971AE9E9E0C18394559755979AAEBE3DF31498A5179A22439694159A6313128A6964D9EAABEDFBABE314982514924081849495565A696396969610C287D453535203571968286717155'
$Merlin_GIF &= '7171694571A64D5D861C3D92D2BE41514141DBCACAEFB6BA49393D24459A315586394561082471C6B649614D55B6AA5D1C2D59BE969A3D49717D7959614949CAB2AE514139244186E3C6CAF3EFEB756935797965867D55595D4561758AFBBEC23D659A1C357161551CBAAA49413D456D798A7D8282617DA2141C35000C2820283D24418A79753DE3DFDB24395D9692695D6986283965B2B2B23559968A8279FBFBEF8692AEEFD74D516D96C6B6559A8E45353541A69E5D82615D967D79454531D2BE4D92864561869E14244D554D456D6555393D555D61613159A6B286867592B29E8A351C316DF7FBFBFFC6C665757D1C397D555D7DCECACA1C3979182D71BEC2CE4539206D611C866561FFFFFF21F904010000FF002C00000000440047000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710233E74674CA2C58B08C5E4B8900F16C68F1651697C152011C8930E977DD3A6F100CA970BC5C9C92166D92431307316540149C2AB1CDE64EA1CFA2FDA87483968CE01878E684E246A7E591A9369DBBE664E5F669254E357264BD3BAE2819715243C0A3FAA90DA45CF519518562894FDA8A451851E3DA8E0C0DBA34D3D25733156A0A32990AFC281FED02115F862333AACE6593A24F550183EB71A5BAC42C7579843785A1D7A52435306249A1F12BB1567452B568134E10864184706478C5333248645C70A3E545A151BDE8A'
$Merlin_GIF &= '0F9F0C59C645D2BD70CE381D192A00C7419DCA0AE851A200669E905B1B1D59A264FFD171A7C29D3869B0544893663BF7834AD2E878A7AE1096FB5892D4D185FCC77B8555E8E0883AAEF0B2CA81AE8812C31F59CCF15F4255E013060241ACE2CA856E7451430DBBA0F6E0418CFC5243183570D0055C4F90D855261F1AC44D586AE0F1C4346AA8F1C41378C818A3832D0E840D1E1C144101214EFC10430C4E60C0880D08E063458F0229C10436D830614A21B75041051F59D47186154C6060857B1FCE51A413419CB0CB1F155470CB1F8EB473C20F3F10D2548F679C70423B31E0C301051B6CC008051CD810449A319C01A529EDB8C00C0708441A24A44D3212840B413003252EE198B2411191861AAA9056B4C303253D9E3204343130C108A8A246FF4A81065604F185212DBA13CB258F04E1043636C03A2A234CFCA0CC1A5FE4F3E03DB598334B1F6EC44008B0C2526003064E9832C4140494100D18DCF522432DDD74534D19A074C1C4061414E1AE0DD88C10831B054860EF0507BC919A0AD1C880CA37D598730509653033EDA0D6128BE6B6537C7081BD074CD258360294708135937821483B32D8F282BA1BD8400123D8101283324B8883CB14164B700104F69C52960A0F5C60732A1008E0413E071C50C60907DBB001B62E4C708F399E784080C33643207156BD9470EF070404208F008094F0801D203342EB093CC8608A'
$Merlin_GIF &= '397AA4B0440810A4F28A045364E3943153D82B412A5E3CD04002F6007240098604FF31ED06D83861C703105C318B10476CB1C726D5D4A3C0058038958FD46B07014A0A2CE0220001807C00010F3160808D152FC853C20121E4A20A382C60924C300AACDDF650F55CA1B602F5D4D2411FEB94620FE77B2F01C70818FCC043CF3D8B20CCEE8360E2F0BDBDE8D40C2EA9DC1B0D208B00B345289BEBBD770A273001C7143D0302880022E4314C1F1D4002814F1240103D4C9BBC7F2F014B7051C60D09189037F221488420187000F3018200F610C0120AE086580822040FB3D71440F01228340010AF78C5053E20007DF8410AFA08C0037EE73DADF9E0000448E10113688014A4C30709C89A4F2E20002D80EB24D780C11A5A6080541CC00033184201FF18C0800808200421F0DE01A7600F6EA590850C68413A182000089460028F58C31A6E884318E8900706F0C0AA0650800124E00182B84212CD470001B8F1776D34C00306E087474CE0015080C61A74C8459424E20BCEE045387CD0023F04A000050880084C910C35AED08D6E4CA1000C60802D68E11146B0052F44B10632F4112588384521508002657CA100FA2840031409095528220492A42424DD28823DB8800B8F20C328DB0087ACB4860A7480430306708D44DC2014B998C52C1E294B01E4037DA1D0830B88900E72E0E0388A220A12B290811564200EF220A6191251'
$Merlin_GIF &= '8A0ECC2219BF73A32C45100C458002141D580711E0E0CD1554801CA81A0A12DE91FF810CD4E116A318C004A4C1860E744008C110813A2949497B2842151DA0011086D18834446105B7408153908002D69021035018400358400321084118906428431F600045449406D2684414D8B18238A0603943B1863FB2F38524E0A2003358C0223CE10903A4F4014865E812842104894A610FEC18421AFC5108A750A20E3B8506341800542D34C0032260E94A2380D40788E00542D0831ED8C0834E7CA10EE4488237B2428946D022099C40A416B45080049075AC11202B4BDBF182048C420F7048072D0AA18BB9CEC50EC0E0C43576E003BE06E0AF728C4002361BD80878C00309F040256231047570E21E8808CC30E2818C3E9881053E48A45FCBBAD900FF6CF6B6B5D5470386800C7E78642E8860413FFAF00970B821B60CB02D529790800038D7B9B7752E5787C08974FC762E9740C627CEB10534F035B99BBD022E3C10007DDCE0B9CF256201A4A08E4E5C372B60E0871DCC30081E547688B6F5401E30510912546211E7452F03C8A88572E432302A4807170A60063BA0C102654CAE7E69908B2300C11301962E570B5060673C2230C630C1041A90026A5800C22918803E46E10920B08106A5B80111931B00F572D80816480788455C8009CCC0027C2D803C4A01840EB0E1C87990F18C67ACD774580057733184052640E519F821'
$Merlin_GIF &= 'C80CA8C41ECC70641A80A312FA604098990CD47418410B08DEEB0C66A0852B237269C0B258041BCE710433B840C9649E409BAFA002CDC0020A50D0420BA6FCE61BC0810D89D8C10EE4B1641B4FC0022A482D734E01060BC416913758443B1AA0CA05AC79060D6840507D9082147C48056F28B53C183D80141862132088B5AC63FD069941E9D6B84E484000003B'
Return Binary($Merlin_GIF)
EndFunc
Gruß,
UEZ
Also Merlin ist weg, sobald man mit der Maus drüber gegangen ist (Win XP).
Hab die _WinAPI_DeleteObject($Bmp_Logo) und _WinAPI_DeleteObject($Bmp_Button) mit in den Case-Zweig genommen zum schliessen.
Super Danke.
Edit: Das _WinAPI_UpdateWindow($hButton) hab ich auch noch mitrausgenommen, brauch ich nicht.
Stimmt, da war doch was mit WinXP.
Werde den Code auch aktualisieren.
Gruß,
UEZ
Nun will ich aber nicht die PNG's in Binärform mit in den Code packen. Womit bekomme ich von den PNG's die Binärdaten als Rückgabewert?
Du musst das Bild laden und in ein HBitmap umwandeln.
;coded by UEZ 2011
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
#include <Memory.au3>
_GDIPlus_Startup()
Global Const $IMAGE_BITMAP = 0
Global Const $STM_SETIMAGE = 0x0172
Global $msg
Global Const $hGUI = GUICreate("Test", 600, 250)
Global Const $idLogo = GUICtrlCreatePic("", 215, 20, 169, 68)
Global Const $idButton = GUICtrlCreateButton("", 266, 150, 78 , 81, $BS_BITMAP)
Global Const $hButton = GUICtrlGetHandle($idButton)
Global Const $Bmp_Logo = Load_BMP_From_Mem(Logo4_GIF(), True)
_WinAPI_DeleteObject(GUICtrlSendMsg($idLogo, $STM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Logo))
Global Const $hBmp = _GDIPlus_BitmapCreateFromFile(StringReplace(@AutoItExe, "autoit3.exe", "Examples\GUI\Merlin.gif"))
Global Const $Bmp_Button = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp )
_GDIPlus_BitmapDispose($hBmp)
_WinAPI_DeleteObject(_SendMessage($hButton, $BM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Button))
GUISetState()
While True
$msg = GUIGetMsg()
Switch $msg
Case $idLogo
MsgBox(0, "Information", "Bild wurde geklickt!")
Case $idButton
MsgBox(0, "Information", "Button wurde geklickt!")
Case $GUI_EVENT_CLOSE
_WinAPI_DeleteObject($Bmp_Logo)
_WinAPI_DeleteObject($Bmp_Button)
GUIDelete($hGUI)
_GDIPlus_Shutdown()
Exit
EndSwitch
WEnd
;======================================================================================
; Function Name: Load_BMP_From_Mem
; Description: Loads an image which is saved as a binary string and converts it to a bitmap or hbitmap
;
; Parameters: $bImage: the binary string which contains any valid image which is supported by GDI+
; Optional: $hHBITMAP: if false a bitmap will be created, if true a hbitmap will be created
;
; Remark: hbitmap format is used generally for GUI internal images, $bitmap is more a GDI+ image format
;
; Requirement(s): GDIPlus.au3, Memory.au3 and _GDIPlus_BitmapCreateDIBFromBitmap() from WinAPIEx.au3
; Return Value(s): Success: handle to bitmap or hbitmap, Error: 0
; Error codes: 1: $bImage is not a binary string
; 2: unable to create stream on HGlobal
; 3: unable to create bitmap from stream
;
; Author(s): UEZ
; Additional Code: thanks to progandy for the MemGlobalAlloc and tVARIANT lines
; Version: v0.96 Build 2011-31-12 Beta
;=======================================================================================
Func Load_BMP_From_Mem($bImage, $hHBITMAP = False)
If Not IsBinary($bImage) Then Return SetError(1, 0, 0)
Local $declared = True
If Not $ghGDIPDll Then
_GDIPlus_Startup()
$declared = False
EndIf
Local $aResult
Local Const $memBitmap = Binary($bImage) ;load image saved in variable (memory) and convert it to binary
Local Const $len = BinaryLen($memBitmap) ;get length of image
Local Const $hData = _MemGlobalAlloc($len, $GMEM_MOVEABLE) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002)
Local Const $pData = _MemGlobalLock($hData) ;translate the handle into a pointer
Local $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct
DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data
_MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE
$aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0) ;Creates a stream object that uses an HGLOBAL memory handle to store the stream contents
If @error Then SetError(2, 0, 0)
Local Const $hStream = $aResult[3]
$aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) ;Creates a Bitmap object based on an IStream COM interface
If @error Then SetError(3, 0, 0)
Local Const $hBitmap = $aResult[2]
Local $tVARIANT = DllStructCreate("word vt;word r1;word r2;word r3;ptr data; ptr")
DllCall("oleaut32.dll", "long", "DispCallFunc", "ptr", $hStream, "dword", 8 + 8 * @AutoItX64, _
"dword", 4, "dword", 23, "dword", 0, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr($tVARIANT)) ;release memory from $hStream to avoid memory leak
$tMem = 0
$tVARIANT = 0
If $hHBITMAP Then
Local Const $hHBmp = _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
_GDIPlus_BitmapDispose($hBitmap)
If Not $declared Then _GDIPlus_Shutdown()
Return $hHBmp
EndIf
If Not $declared Then _GDIPlus_Shutdown()
Return $hBitmap
EndFunc ;==>Load_BMP_From_Mem
Func _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
Local $tBIHDR, $Ret, $tData, $pBits, $hResult = 0
$Ret = DllCall($ghGDIPDll, 'uint', 'GdipGetImageDimension', 'ptr', $hBitmap, 'float*', 0, 'float*', 0)
If (@error) Or ($Ret[0]) Then Return 0
$tData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $Ret[2], $Ret[3], $GDIP_ILMREAD, $GDIP_PXF32ARGB)
$pBits = DllStructGetData($tData, 'Scan0')
If Not $pBits Then Return 0
$tBIHDR = DllStructCreate('dword;long;long;ushort;ushort;dword;dword;long;long;dword;dword')
DllStructSetData($tBIHDR, 1, DllStructGetSize($tBIHDR))
DllStructSetData($tBIHDR, 2, $Ret[2])
DllStructSetData($tBIHDR, 3, $Ret[3])
DllStructSetData($tBIHDR, 4, 1)
DllStructSetData($tBIHDR, 5, 32)
DllStructSetData($tBIHDR, 6, 0)
$hResult = DllCall('gdi32.dll', 'ptr', 'CreateDIBSection', 'hwnd', 0, 'ptr', DllStructGetPtr($tBIHDR), 'uint', 0, 'ptr*', 0, 'ptr', 0, 'dword', 0)
If (Not @error) And ($hResult[0]) Then
DllCall('gdi32.dll', 'dword', 'SetBitmapBits', 'ptr', $hResult[0], 'dword', $Ret[2] * $Ret[3] * 4, 'ptr', DllStructGetData($tData, 'Scan0'))
$hResult = $hResult[0]
Else
$hResult = 0
EndIf
_GDIPlus_BitmapUnlockBits($hBitmap, $tData)
Return $hResult
EndFunc ;==>_GDIPlus_BitmapCreateDIBFromBitmap
Func Logo4_GIF()
Local _
$Logo4_GIF = '0x474946383961A9004400F700009292924040406A6A6BE1E1E1CDD8E35689B66499C6C3CDD8BFBFBFEDEDED3A648DDBE3ECA5BED69AB1C75A94CC33333579A3C8C6C6C699BDE0AAAAAAD0DBE5E6ECF1A7C2DD949DA67F7F7F848484F1F1F1B0B0B0B8C0C9E8E8E8FCFCFCA3C3E2212125B4B8C74C5863D5D5D5F4F4F45B687471727246719A515C684C4C8D00004236367C989898A0A1A1A4A4A49D9D9DCECECE8B99A55B5B5B6795B9B9B9B93647578BB4DD677684C8C8C800007B92ACC5606061A5ADB54365868D8D8D9ABBDB5252525783ABD9D9D97B8894C1C1C12A4764548EC757799979818BE4E4E499A2AE00006A000024010134D1D1D192B2D1707B85ADADAD416C96C7D2DC83ACD4A9B0BBB6B6B6000054E6E6E623237994B9DE7CA9D3606C78838C94ABC9E6DCDCDC49494A7DACD9000073FAFAFA65717D4D83BA9BADBE87919B56636EA8C6E343495627384A8AACCD3A5269749AB972A4D38989892A2A2ED4DEE727415B4B7DACF6F6F6CAD5E0F8F8F80000128787A74B79A2111111233C54EBF0F493A2B0BBC5CF9898B9181B26527DA6EAEAEA669DD06187A8C3C4D099B5D293B6D834537118187C344B616DA2D4333A4344515D9AA7B3DFDFDF8EA3B8797979788CA09DC0E2889EB48EB0D247617AA3B9CE0000609EA9B5385E8435597DB3B3B37691AB5B91BE9EBAD585B1DBD6E0E9AEBAC41B2434ABB6C1'
$Logo4_GIF &= '67678981A4C26B92B00707071010317F868D90979FD0D2DB405C783C5E7E729EC44679AC3D5A751F34496DA0CC1C1C69B1CCE850719185AACD9FB6CB4374A233404DE0E7EE5959847375769599A1666769A1B4C6B0B3B52424562F51730B0B7D7A7AA724303B3154770D0D7693A7B9BBBBBC707981487DB1A7A7A781A7C93D566EAECAE70909648EA8C179A6D00C0C4E1414454F83AFFEFEFEEEF3F6F0F4F7B1B6BAB7B7B7A0BFDDA9A9C3C4C4C41019227AA1BFA1A7AC628FB34D6C8943437445457FCBCBCB2E4D6BA1A5A8ABABAB7C7C7D9A9A9B5089C1E3E9EF3B3B5FE8E8ED6B6B9F77779075A7D678A9D787B0D669839B90B8DEE9E9E9D9E1E9D9D9E110106B0E0E28000000FFFFFF00008021F90400000000002C00000000A90044000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C99328538ECC92224F1E532BF6E55049B3A6C71521FCE9F4A0E10B915E326D0A1D2AD1984E7FD8EA9020A101DF8816C3C4CC244A9564B22C2B56982BB7228BA264530DE6D9A96190D9B3589E460D5BB56D4645E6F2188257A76E1D0D09060D88F0AB5716B00353E8AC93B785A475EBE0981D80234335316E23572CB6025082A3FE3C8CA9BB5429DE0123D4F5AA95A3183C7F2406E11B14E001302001F0C98664454D26B692732F3467E8A80712793B081F3E1C'
$Logo4_GIF &= '5FDE244288E4019439816C7C6004747821038BF024E724595BA2BB7BC22C397502FFC7475C3896F3E8D377B04E82307104113A6400323CC90816A46E7BDF3F301E369D4D61914412907CC3822F2838A2A0083B20E1020C034698846C024A9884000F5871DE802338F3C01590F1D75D32DE88874F84060A20020A687071C38B379081060A22F8E2821316E698040B0F0010E100424CD0880A218A289922ADE8944007032E83810868DC30440C7E286386190D5CF9C80593DC80C60E2C40A8230D3424E1830C03A4095A0B0F1069E491FAF873073E699EE3030A5C4CE90796C1E482C99F98E4124C968FF83144093BBC20849A6A060046121880A126247692E2E69B6D21895A12696E000C1A7A36100C260C946AAAA9810673A51243A0B14E048C0EFF00061000C8000624690A818000AA5CC11DA655E544028190B4800219675462869FA55AE0AC05693C8B6A2E84C6C00530CB40A22D24EB082089091968FB050C2D04D0C4153389A1C2BAECB67BA96EEABAABC2152119830D09037CF1450B22901143240DE4020A03DD3C9BC6C1083BDB0D03A0506B86327E9450020DFA566CF1174E74024C202A64F28F18206020F2C8246300C2AF92815CB2C83BA8F0D10A1AE0ABAFB125FCDBC0210377F3C107087B114D345E1CFC8105DD7403CA210DE8A04C0C9708B0CCC5FA0A014327BEC471AE54990480D9D63A81A1026E132D91C9'
$Logo4_GIF &= 'D864A34C51D65CFBA30E1EE992ED3645C518320616420489023493008C73D11FE8FFFC81175E58306A1AD1A4B173DF3F1CDDC034914CD2860944D45DF7084E7CE3820056ABB0C44C2A6090F6515FC8D004D8115DF14000A8A7FEA145686F3D40067888B10408A9D7DEC444BDD4318810232060C2223744A2C32187FCD00D25C8EF9C8B12EA188280386658B03325DD48F003224F285D09396DC031C2F7239CB341066080D084E65335E1C3E7A8E1000C134552C404025CD3C07645AD1FA5C1AE782CD139D71EE807E914528C566800129483431B2EE1091D3C01113F90800491478948B0A2157DC8A03B42E08743204F823FD0C2212CC1387B40030D2E001F02E0400A7ECCEB365399DF51B041C3FF604303D989DD456488993AB040870611C315FFD8E5AB83E42F33F8E0860062F7BFAD9DA31F666B480A06619F117402056D384225D8F0402D684182129CC62AF2D1876C68431B7DC04229620046097811119660C3293CD18336F822024E70C23224E1C24C4885207880816FEE70070FFCA70E4E70011405228626F4E39190EC47131A1949484E92873AC1C600D881077411E40A4C00011046B68307F4E35DFF38A20792B844FF790E331DC0413F4004912A2440084E804106167189429C820D96B8873085A9857B0CE10F1528E319B35101399CC113C51CA60D2C818B3992C31522B8911388000052D0B220FDE861023470'
$Logo4_GIF &= '87FFDC61042E4885C7FED1C4AD9DF295EEDC43000499C9DFE000757B0851131E40FF3FAE2500037B70994054994413E0810901680166789200D49DCC2159C0552EAD80824490A3101060433D6CC0D17BD8E01EF6B8C0022A90CC0CF6A1020BF80617DCC0D196D60317CF98C12D7AB0086644000638880210BE3990D9F946031DD8C01874728720C541A0ED3C0A0C24094FD0F5436BEC234123E8D5841DB04F279078C0ED5209D59D14140FE1641F364C30BA86F402393080010B6AE08A1314001654A84728E63A574F904114BCE0853B484A5277F082024AE00215E81A0A2A6C0102E338420F6481820DC0E01C5630812AA2983F0F24001251B8834EC630804E988B734DF5C7085EC0D4AD8D200A4FE51A367E23844E1C55054058286892A0D9A3FF24600F1E2328370C1A56CCAC165FCB00C2241BA2840138E11CDFF045117A70840218600B61886E742180020E2C80170B58403EF2915DEC8AE200CC388274C3400F6A40A0008290822C16C18273E000013EF0265BAE60D5CDA6050E24D8490782CB04D0628604110040698F42021CB023B548B1611D20B10C00F802042AC003248E72077201A0130318AA9232D05F824616AC3BF94F663A60205F04007E0C49C639BE708E73744204E8E8011D0AF08937CC831E38A6C72D582187EC8A620A7FE0C00128B0DD7C50A0142238023DE6C1E4371800BD279045112441847310E1'
$Logo4_GIF &= '05538D5F3BEFC01801D0209309888024749854000BB8094D35733F40D089248CE1FF3F9625C23A1CAA8207602601914D451C06E19B2410610F62EB2A129578D00D38810422462400C01000F3C50F215970C20870F00D76D420115298F1271CC0883774FA165C2080284421870354E10CCC50C21F082007524F81158E3040A71941080740F9154540C304704004670041730461C20628AC2B192C83C0E7801D64CA1CE0018B27023E38251EFA39E24E00010F78389F097C13D41D80D83703B0C25175BB44153021CD1158473FB2AD9F85AC20971158C62AE6908813CCD8080E2004211821885DFC61D43F2E45AB7621021E1C800014900305FE500259E8BBD64628001D4EB0097438C20711F846147630D96053BB0E23B0C2038E3D1827B46091CCFF3E33BAA3BD044C7AA0039DF0762696A03E6E776289BDF5C71820B101E192BB7F65FE46066629864723A4178FFD8615B830074E64BA1DF87680030CB00825249C027618C519D0D00868D4000AA39802C2B15E8A5DF440EA0E30423B265EF11AD894085100862ADAFD0F3C5C463C3098C003E0794E67EC815E2977366AA00D459777C00AC0E8DF3F0CFFE19C8FE10BEA000313AE20E85512DA95FFFD06CB1F620A1C4480081B4041D34F108B321821EAC8E0821D144E010E586B173598F83162F007B153800007880129E89076B5B31D1D73E002111010055ED13DE71A8840'
$Logo4_GIF &= '0B5201CFC747E1A8EC44B7CAFF4BF89653DBF2AD5CFCF5BFEAF82F4C40F2945F28FF2B81BEF2453A441E9426C28B9B2E85D29FDE010AD8C590294081033CE2063558C3098C608057D4C0E004807004C001685004A7670465100BBA50717C800644B00CEA20599EC45533940008C002FDB06D9B950456205C39107868467D2CE772E3C71D24B85BDFB6595FE00CE0577925C86C9B777EDF8000CBB07E4E577A505706A4F00863676A482002C7200BCE956F6D40067F6007014800535076E8707A65D00C52C08068408313200081308195850F568001088644082003F00382E5677DBE5182DA578628D87D2C38792E787930687E0D610A345883A27783650075E8000576407F5977065CD0088B70028210048428086BA009489884077001A42005EDFF908052C009E8C0075CB00C34E00C72F74DEDE40158D009062568613666EA227D82076023B87D84061927C85B98F1786B187E68D84A6F18450A610EDC40269DC0057C800C0A100BCDD00EC8E008F347007FA00450A00635407028B08C342202CCB087B717807F40067C500690C80945E07634C00D2EC0711358733B3108D0860776466030E003E4477DD34760D57782D9B78A29A8732BD882E2E78663F810EFD009DB6805ABC007C4A000BAD00C0A400A1CD0839A307035F007B7178D49487FF4178076500A6A5004CDA00B0A800C73E0085D40039DF00240D02B31446DF7'
$Logo4_GIF &= '820FEA967388A44898C78EEBF86CA7188B8A078F6A488F2E99922C09870C510B51FF40035660052F3007E8B009BA100BB31003D0B884674006B0A709A2905D4CA95DA4E6900E79007E400AC46091C4C00725D00256B00100602EED1648574561233001203044A41882ECD8925E757967B896AC7814AE28936B298BF7E810C9A0959D60052F56044E3707287070F5370AAC70036AD0064840014C59644F490076300507E098077000A30005A4B00992380BABD0099D300119A055EBF40F3977558FB7016D2286225878A8B844AA888A6FA982AFD88674799AB498103980041BA0999D0005FE5804C71076A5B02547A9207F596A1C509CC5390AA3500A55C0039AF0084AF09C7E700143B00BB38091B330011BB0012D60021CF32B20B3353494361EFF90043400044C609A69899A33D99683D69A3A27042E209783169BE9399B089103E5E00CD9B901CEB00645000E25800432C22209D20835D0054A7001ACF00B17D0A00A7A065D80045040065C500233B28C0A12087CC0078EC00D1B10052C2003FCF04D4794141DC03B5F3008750067834004EF8396CFB69283A796484403EFB87D34E09EE7C40E27068B73998E04860331E810B5F002EA909DDC200273C007A4000E81400A507A0C6B7009B7C0225CC00C48B00A5DD005AB80043750020952038D700CC700A581000EE0400A7C300B5DD00951E00C70602EDF445F0BD50108'
$Logo4_GIF &= 'C00E00E00C3090001E80141A8003EB906D69760E2707A333AA9E3B9100446050AAFF386C604604189082F7622756F37334891A307060F68910628001CEA00E51B001BF300BE8C0090A20057A700D055000E36000D44005C084330C6001A572343AF00CB0E00633F00905700D7A609545C007BBC00D51A00E2F6002E6D36E49350623C0A30F00062CA00147510730405A867A073E518AED2892242004E8C81DED742F42C049BD655934B00E10E6A3F309A444C56036C91039F00EECE00C13300134A0A4BC4807EDB069FB360F61F05112F037D1600BB650381F2001F7100A61F006846000B6460752609D6DAA0E2EE00360E04245226C3D748E817050BE8019E734017B60A83CA10101D00FD476A864F8534900029244A709F61B1E204FD33AAE3BFFD00F63039BEC9A19780104FD30790FB10F19D002F47AA4FEB90927700DED6000B2E6AF36A0059420B0046BB0081B0A5BC0B006F009D76091C12A02CB3001CEF00255732E618149A8710E700061D72A04EA7054B1954957658A50D4042FB0137D8A19EBD0047B800531F3660034001BE00B0FD03F960AB31E6048984103FDE510F10A002E50AF9DB00AA40A90D7F00906400B6F1006A1F045526B0B4173B0F76058B490B5BE2A0557B906C2F0A62D0007170B6C03D10FD28A0D099000E49901E0B02E1A88171D0003CE602E7B4018E3C41483D00109300677801709300034'
$Logo4_GIF &= '30744B70053290045F000958304E840103A2D304020003233000095007FF359692FF0004A94024AD031C83101A89B70420D301FA920483D0BDDD0A0740D410D2E00BECE002CEE00C088006FE88AA957BB95B500F882001510B389FDB0D5A6003610001B4C0AB10CB0973300B67D009CEE0022C2000E6C353A0E90F426005EA30012E0007C080B359830F1A07B6EC800127D604BE408308800056D0023E80013B30015150AF212C008B746E2EF002F85BAF2FA0C24CD07226F0B856800038D0620830013E200060B0074C701B59F3A71B00B6417C6DDCD1044010B6443B01140B0732A0788C3B0C1970BF2EE002CB20027CE0747A1004960B01010C41517B38088C0854C0C03350007A2005B886993470C6EC30672E643659430334BC0332200340FFE0B362F300CEE00B889CC840207999D004329001DF22003210007BD008C080C888BCC88B9409080504897CCA40F000F0D372AE6102BE200992E00B02B00360F000A930793391090FA00E9210C98A0C068A97034D1007B372CABF2CC60E21066AE0032FD0022DE0020880026B8CAA41D0AAB0F00CF5F0403FB0CDD7134710000B335008E9D5C7ABB00CCECC0EF3C10F4D407702E14895F44843FC0FEE5C497840242DB7077190CF7B70504CF0CE3FEB9D11F6CE930719C28C077B0002F91C0720B007EBD6316131CF91946D21920357806DF43C5C0F9103D2B0033EC00ECE'
$Logo4_GIF &= '0CCDFC9B080AA00782300E33000BA7800B5CF4044F1047CF100E6E300E41A0073DFF808D6BD005E6DC022F00C6193C9BB2B304401DD49BC348421DD47F940334C704E739734557D4401D1639D0D445FD478C34444ACD04E7C3D4B8F1D353CD1651EDD4549DD1D520001DEDCC2D4004675003E8F00AE4A0078560D26E100EA730D7E100D3A820CEB7F00A89300722B001DC70CE3EB00371709E430D12511DD61B91038A5D74882D1462600D020007ECF002CDAC8F25406F3D400E47100485800A9EEDD9855008473053EB550343100113A0D32C000782BDD403042C91F1D83B90010040D93EBC0C51C0058B9008AED003B77004C00DDCB7400EAF000D8B000D4850833A8DA718200371D047AF0DDBB15D0D4020093EC002B68DC6CB70013780456DFF000DB2200BD0F0DD6880043CF00D9DD00293CD023E10BE20B0D44627DDDD21440F2000B4CD02EC90DF2F30011E9A0EBFD00543D00567F00B3CB00D56D0C32FC00E2C000019000C011008591DDDF29D3299600D60002E00C002F83DD9CE200CCB4004208E0034C09F09AEE00C6E0240F0DCE753D813FE26B2530DA400042680013E90E11B9EDF389EDF1A0E00332C0029AECEF3D2D82D2E22519D09D5100801200326B00E19E003350E0050CEE33E9001EB60029BFCDC2E7405EC3CE4C052E457A00AA4F0AC40B003C0200066FEC993DC688100E45A2EE45C8E298B9D0957'
$Logo4_GIF &= 'F0E5AAA00A4F0A02A4000281A00AEA7C3E73AEBE12FEE698D2D4723EE7EB32447320EE2B802EE88C5E108A7DD88C5D748ADDE8945EE9967EE9989EE99ABEE99C1E10003B'
Return Binary($Logo4_GIF)
EndFunc
Gruß,
UEZ
Schonmal ganz gut.
Mein Code sieht jetzt so aus dazu.
Global $cNew = GUICtrlCreateButton("New", 200, 100, 100, 100, $BS_BITMAP)
Global $hBmp = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\images\DocumentNew_64x64.png")
Global Const $hBmp_New = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)
_GDIPlus_BitmapDispose($hBmp)
_WinAPI_DeleteObject(GUICtrlSendMsg($cNew, $BM_SETIMAGE, $IMAGE_BITMAP, $hBmp_New))
Global $cOpen = GUICtrlCreateButton("Open", 350, 100, 100, 100, $BS_BITMAP)
Global $hBmp = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\images\DocumentOpen_64x64.png")
Global Const $hBmp_Open = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)
_GDIPlus_BitmapDispose($hBmp)
_WinAPI_DeleteObject(GUICtrlSendMsg($cOpen, $BM_SETIMAGE, $IMAGE_BITMAP, $hBmp_Open))
Aber es bleibt trotzdem so ein schwarzer Hintergrund.
Edit: Ist eigentlich
[autoit]StringReplace(@AutoItExe, "autoit3.exe", "Examples\GUI\Merlin.gif")
[/autoit]
nicht dasselbe wie
@ScriptDir & "\Examples\GUI\Merlin.gif"
[/autoit]
?
Lade mal beide PNGs hoch.
Führe
[autoit]
ConsoleWrite(StringReplace(@AutoItExe, "autoit3.exe", "Examples\GUI\Merlin.gif") & @LF)
aus und vergleiche den Output mit
ConsoleWrite(@ScriptDir & "\Examples\GUI\Merlin.gif" & @LF)
Gruß,
UEZ
Achso ist das gemeint mit der AutoIt.exe. Wieder was gelernt
PNG's siehe Anhang.
Probiere es mal damit:
;coded by UEZ 2011
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
#Include <WinAPI.au3>
#Include <WindowsConstants.au3>
_GDIPlus_Startup()
Global Const $IMAGE_BITMAP = 0
Global Const $STM_SETIMAGE = 0x0172
Global Const $hGUI = GUICreate("Test", 600, 250)
Global $cNew = GUICtrlCreateButton("New", 200, 100, 100, 100, $BS_BITMAP)
Global $hBmp = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\DocumentNew_64x64.png")
Global $hBmp_New
If @OSBuild < 6000 Then
$hBmp_New = ConvertBitmap($hBmp)
Else
$hBmp_New = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)
EndIf
_GDIPlus_BitmapDispose($hBmp)
_WinAPI_DeleteObject(GUICtrlSendMsg($cNew, $BM_SETIMAGE, $IMAGE_BITMAP, $hBmp_New))
Global Const $cOpen = GUICtrlCreateButton("Open", 350, 100, 100, 100, $BS_BITMAP)
Global $hBmp = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\DocumentOpen_64x64.png")
If @OSBuild < 6000 Then
$hBmp_Open = ConvertBitmap($hBmp)
Else
$hBmp_Open = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)
EndIf
_GDIPlus_BitmapDispose($hBmp)
_WinAPI_DeleteObject(GUICtrlSendMsg($cOpen, $BM_SETIMAGE, $IMAGE_BITMAP, $hBmp_Open))
GUISetState()
While True
Switch GUIGetMsg()
Case $cOpen
MsgBox(0, "Information", "Bild wurde geklickt!")
Case $cNew
MsgBox(0, "Information", "Button wurde geklickt!")
Case $GUI_EVENT_CLOSE
_WinAPI_DeleteObject($hBmp_New)
_WinAPI_DeleteObject($hBmp_Open)
GUIDelete($hGUI)
_GDIPlus_Shutdown()
Exit
EndSwitch
WEnd
Func ConvertBitmap($hBitmap) ; Workaround für WinXP
Local $iButtonColor = _WinAPI_GetSysColor($COLOR_BTNFACE)
$iButtonColor = 0x10000 * BitAND($iButtonColor, 0xFF) + BitShift($iButtonColor, 16) + BitAND($iButtonColor, 0x00FF00)
Local $iWidth = _GDIPlus_ImageGetWidth($hBitmap), $iHeight = _GDIPlus_ImageGetHeight($hBitmap)
Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iWidth, "int", $iHeight, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
Local $hBitmap_New = $aResult[6]
Local $hCtx_new = _GDIPlus_ImageGetGraphicsContext($hBitmap_New)
Local $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000 + $iButtonColor)
_GDIPlus_GraphicsFillRect($hCtx_new, 0, 0, $iWidth, $iHeight, $hBrush)
_GDIPlus_GraphicsDrawImageRect($hCtx_new, $hBitmap, 0, 0, $iWidth, $iHeight)
Local $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_New)
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_BitmapDispose($hBitmap_New)
_GDIPlus_GraphicsDispose($hCtx_new)
Return $hHBitmap
EndFunc
Gruß,
UEZ
Ah danke. Ich werds mal morgen auf der Arbeit testen. Zuhause hab ich nur Vista, da läuft das vorige Script prima. Und morgen teste das Workaround.
So habs jetzt doch so gemacht, wie du es beim erstem Mal gezeigt hast UEZ.
Ich schreibe die PNG's binär direkt in den Code.
Func PNG_DocumentNew_16x16()
Local _
$sData = "0x89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF61000000017352474200AECE1CE900000006624B474400FF00FF00FFA0BDA793000000097048597300000B1300000B1301009A9C180000000774494D4507DC061A03241B6007A2BC0000027F4944415438CB85935D48936114C7FFE77977B1E9B6C82103A18F81D92E8A2C90A24BE9C29BEC522810A16E9C9250172281605DF851985D79D15D1A595781457A938BB048C8A0586ECB4CA9B1B54DF6E5D4F7DDFB3CA70BD774DAC7810387F3F0FF9D731ECE2100D0344D58AD56BB1002FFB3C623D6AA5B9E86E942341D0A26936D54CCBBD3994C4C4A09410412024404024044403156720366E022C64797E09DCA42E6F393A59252CA2D570A524A2829A198A198C14A41298942A80B13CF9731F872136FCFAC2A7FA5BE510208214AAE0901A16965B1B93284D9B930EE3C32D174328163A7C5DCBD8CECB2EC0430F316A43886200211A1109DC062701E3DA36B387E208E9ECB87D1D01AEED934902A7540447BBB10022A3D8BC4CA0CAEDE8EC16D4F60C0E740C63D88540E3F0118DB23106D7B51CCEB61AC4526D1D9BF0414E218F699483A6FA062BF17449405C07FED80F5288CD8135C1B0A20168DE06E7B1629473B84F3146A6A6A00C00480320015678799818C8DA377641E1F3E7DC3E0951474E705E42C67E1F17860B7DB4B7B510E1002"
$sData &= "5026CCEF2318BE3F8B173361F45E4AC3E16EC0F2E639D4D6D6A2BABABA6CB12C650000EBD904DEBC8BE3C1D3457436E7E03D7A08333F9A505F7F1055555588C7E350A002005506F86DE9D847ECAB94E86E75A0F18405CF965A5057E785CBE542E0F3022A2B2AB87FA0FFBA102229A52CE9DCBAAE733E9FE79BDD2DEC7FDCC6EF5F3FE4AF5F429CC964381289F0D4D434E77259EEE8F0F5D96C36DA5DD8ADEB3A07830B3C3E36C6EBF93C4B295929C5866170301462BFFF95F275F8FA9C4E27FDE9C8DC8661B061186C9A269BA659060804C3C6F9E6E64E9BCDBA474C3B3ED3F58F2B9642D3569594BCFBE117A7BA3A1C0CB32FC40000000049454E44AE426082"
Return Binary($sData)
EndFunc
Func PNG_DocumentOpen_16x16()
Local _
$sData = "0x89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF61000000017352474200AECE1CE900000006624B474400FF00FF00FFA0BDA793000000097048597300000B1300000B1301009A9C180000000774494D4507DC061A032B03F4F32625000001DC4944415438CB9593416B534110C77F336F939798A410B4053D8845513C29FA353C48F1643DEAD1E2C57AE827F0228887827E948217BDF56C41A195228AB1A14DD224BED7BCDDF190F89217A5E8C0C0B23BF39FDF0CB3C2D4E25AADB62822C229666636180C0E80146036F872AFD7FB28AA918A20338E481E6866BE52A95C0376011CC08357FB4F3E6C6D2E83489EAC8A4E60FE02955F28C095F3E517ABF757D6444555159D248B08AA5AA441E4E69DA78F575F7E7E9613A4A300A947450B49F3D5450423E8DD7B2B6B695C06783E16C88C51E211FD33795E4810FA8927444681C0271EA1586D56C0CC72EF279EA81CC602B7D6B7373E7DED920E8D376FBF8F09C60AB95C30C32C4C0460A765C4C75D6EAF6F6FC8C3D77BED1BCBCD7A083EAE555C8102C030B0FC04C0703C2FBFFFA3DF71DDC4B5770FA26AF046B3E1E656638A1D8201C6280B245984A8DAB743DAAE512D75969AEEA2CFA0D97085A9CFF68DC128F30C4F84057520C8F1A0D471B56AA9B3D48CC832E3EC829BABCFA47AE06494F1F344A837E2DF9B24ADC352C7C5E5D251E38C"
$sData &= "4A96299164D30E260D9B1882114542BD366D5140E272E9C89DAB4B271979F51ED22C9CF28D047CF17DB1A15DB7B5F9E8FD854B57AF8329FF67A1F565EF9D4C98E2B9F1FF8B1990FE025C3ED6456457E6890000000049454E44AE426082"
Return Binary($sData)
EndFunc
Func PNG_DocumentSave_16x16()
Local _
$sData = "0x89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF61000000017352474200AECE1CE900000006624B474400FF00FF00FFA0BDA793000000097048597300000B1300000B1301009A9C180000000774494D4507DC061A12041291BBF7FD000001F74944415438CBA593B96E14411086BF9A993D302BD91611D6E6F88DC808F00B800D8200C10B70BF0212482424A43C0690E0B508B064C98BD7DEC374577715C1CC8E2F323AA90AAAFEFAEA68F8CF27005B77B7E6022BB7EF6CB1796B13114184C6D67E8123025FBF7DE7E3FB77F4BADDC5AB37AFAF5700AABA22C0B57E0FCA0A07BCAD200860028508FD7E8F180296F30A4005501605B5156EDE185C8274DCC1DD3173523672CE8808AD404A0900CD995F8727CBBC86E44CC0DDD194DBF85620E70C4088896E559ED576AF45DC31073327686AE3AF10444DECFF9E21807B83BFF4DDB1A6484A6919709160B4FB83988CB22C298A0211C10133C3B2A139B1FF73EF2A416E08BE7CFE7469C9726E967E69B6FF2058BEA22828CBB2BD0396146664336806DA0AA86A9BF8F0F1230683413BC41A444829B173EF3ED932EB6BEB14CDEA2B8018427D075545CE9907DB3B841078FEF205EE4E4A0955A5D3E920B92084705120C4580BA4849B319B4E891A99CFE7A82AAA4A8C9118236686009DAA3A27104214E8569D0EF3C582E9744AB2CC6432218480"
$sData &= "AA124260B158D4FD9B919AB62B80DDD1687BB8B1F1B66B568CC7639E3C7B8AAA72707080AA927326E7CC9FD3D37AB5EE88881722F5673A3A9E7C38994DF786C3617F341AADADAEAEF6BADD6EC7DD0BC044448F8E8E16C7B3D9F1787CD89C1827E69EFE025AA05009BC73BD0C0000000049454E44AE426082"
Return Binary($sData)
EndFunc
Func PNG_DocumentSaveAs_16x16()
Local _
$sData = "0x89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF61000000017352474200AECE1CE900000006624B474400FF00FF00FFA0BDA793000000097048597300000B1300000B1301009A9C180000000774494D4507DC061A1203238F246100000002E64944415438CBA5934D685C5514C77FF7BE8F4C86C94B8727D4A4456BC41AC15629A9F56B252A8AD82E022D14DA4202A594AA0D8D8A20060B52820A2EC445365AB4AD4A166E44F0838046A4C6A898C681A24D93A666DA7426D3C9CC7B79EFDEFB9E8B612614979ED559FCCF8F1F8773E07F9668368303837501D97D0707E9BDB717210442801082B47A93DAC4B7784F3E8DED7530FB6781CFCF7E4C9BEB06B209504A659552B467DAC0B249A545222C940E490B87A97CF83E0B7BFB099696C964DA88A388300CB32D802525524A2C29E8F27374F9396ECF67F0AE0E31FEFD45F6172E33373F4DF0DD576893608CC11883DD0468AD1B26C670F546150079F94DCEFF7881D14F429E7BACCAF6438FA2B7ED46DDB8D6CAB70C9AC428D6B8B645A6FC29572ECDF2DA0775FA7A4A0C0FDC43ADE71DB21D3922A531C6A0B5FEAF41AC342B8BDF60977EE1C5B797D898BBC6A9633E057B84CEC423AD4644B16EE4D3741D608C0160ADF43B797F99436F1530E122EF0D4B26970F20B54DEA5EA7B45CE49FF9B9567E1DA0351B7DC9C35B034E9C9A6271E1"
$sData &= "6FC686424E4FF430B3F0335E470129E5AD4790A6EB3B687715AF1E7D9CD1B169A67EBDC0BB47AA4CCC6EE6B74B793A3D0FD7755B009324B7EE60E4F0E6CC9EFE6D9CF962862FBF9EE2E4810AA26307A2EB19869FBA9FEEEE6E841068AD39717C089318F21BF248291B06FBFA9F3F797EFA221F7D36C9B1DD15B66CB9831746973877E62CBEEF134511B55A8DD5D5551CC7C1B61DA228228AA2868172EFDB5B0FAFB0FF893A3B7B05A727FB48931F10421004014A299452C4714C1CC7244982001CDB46BE34F0ECCE9BA5993B1FB8DBB069D35DBC3C761B3BFA1E690C8701954A8572B94CB95CA6542A1104016B61D83C65EC9FFE58DA53F86BEE5CF17A6D3E15DE2B8ED32E2DCBE2F5913788E39862B188520A630C4992B016868D074B538410A9701DBB3B565A00BE65590F6EE8EC741FDAB52BE7799E93CD66652693C1B66DE3BA6E1486617D7C7C7C65A55C4E0052A8FE0BB0F46C4F57EB67FF0000000049454E44AE426082"
Return Binary($sData)
EndFunc
Func PNG_Exit_16x16()
Local _
$sData = "0x89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF61000000017352474200AECE1CE900000006624B474400FF00FF00FFA0BDA793000000097048597300000B1300000B1301009A9C180000000774494D4507DC061915192B2628AA820000024F4944415438CBCD92BD4B1B7118C7BFCFEF927AB98B47F422062E12D1A601A943AD4D4B6B8B4B11914007A1D041717114FAF21738F76512A73A4AEBD0C53839584A5F145A0BBE20860A7AB488B99AC4903B935E724F87AA20B674E8D2EFF885EF87079E0FF08FA1DF956F348D88A88B993B890824C42A332FDF2C14F8AF80B7A1504A91E5C7E164F2821A8B0142C0364DEC2F2E669C4AE5D18D5C6EF68F80779A763FD2D1F1243C3C4CA4AAA7C06CDBF83E35C57B99CCC3EB0707CF8E7BE9641C0CDED25B5AA69B4646840887410D0D507A7B912B95A0681AD87521C7E3E46D6CDCBEE7BAAF9F572A3B00208E017EA2F1C68101E1D775A87D7DF86A9AA0BA3AE4B3599C6B6F874824E0D33434A652C2078C1FEF0400BC57555D318C1EB9B919FE781CEBF3F3089826E07980EBC249A7212712D8DBDD4520128162183D1F344D3F0110519B6A1892C8E7214522F0AFAD210C00B51A50AD42DADE86B7B2823C33C8B210340C4910B59D00045016B60DCA66C1A5129A02019065FDBAA05080B7B000D8360E4C13BCB40461DB104019007C4780CDC3"
$sData &= "ADAD224992E6A4D308F5F7E3C7E82836868650CC66E18FC550EBEA823336064184722E5714CC9BA7DEB41C0C4EE60C838BADAD6CCECC702D9361776282ABD3D35CB62C7E3138C85634CA8568943FD7D74F9EF16059559B41F42926CB860FC05677372AC9249C6211877373B896CF4302B05D2E7F03F3E54BB6BD7746A42545E9F480598528A60B01E5A83F04B0EF7970987708485D759CD53FAA7C4792425724E9C14549BAAB139D07807DE62FEBB5DACB8F9EF7F455B55AC07F959F66EDED9CFB72923F0000000049454E44AE426082"
Return Binary($sData)
EndFunc
Func PNG_DocumentNew_64x64()
Local _
$sData = "0x89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971DE000000017352474200AECE1CE900000006624B474400FF00FF00FFA0BDA793000000097048597300000B1300000B1301009A9C180000000774494D4507DC061A03272764458DF8000012224944415478DAED9B79941D6599C67FB5D7DD6F77A7D324E9AC8484B06A862D6E70D00107E2B88E62043D288B3067304200212A8809E01CC70451322ACA1C6014C7C12D8A24C8928892A43BFBDA49080949777A4977DF7BFB2EB5D7FC71FBDEDCAD3BDD49A38EC7EF9C3AF5D55749553DCFF33EEFF77E55B705FE06DBD62BAEB837D5DEBE383663C661311C7ED93A76ECD1B92FBCB0ABD6BF15FED6C0B77CF4CA0531ADE1E98C2409466727215D277AE1856E7AD7AEFFCCEEDF7FF745ADAD9911133075EA5451144521140AA1EBFA5F2560DF7709AB69A6D71BBC6F9AF4BE8B93F37EE9DA9E6E5B1603B68DBB6E1D767F3FD10B2E2078E699DB93EBD77F60DE9E3D874E4880A228BA6DDBA701E3FF3F44CAACC934FFE241F9878DEECCD8B1DF9D8999B6D1321922C924BBFBFB110F1E44D275EA2EBBECCDD4CE9D97BDE7F0E1374E140131E01DBEEF3FF7D70E3E37D041C78BEFA221942214A963E0A040E7D313A8EFCA6266320C58165D679C81B37A3532103EEBACDD99C3872F796F32999287B9AE00C800473B3BF13C1F41101084FCA9E1F7"
$sData &= "200C76F2C3C779164AFB15E7861AAB52AAE4BC63A5E9FDE37C1A830982E17A1CDB24A924593EE0728B112492CB412643F84F7FA273E64CA47DFBF076EE9C234722DF026E182E02E2C0BB7DDFFF75C7D1A343822D02ADD88FB45F93A41A406B91E1792EDDAF7D9206611D91683D9EE791480CB0F0B1301BF7A93402F7E57234A65218990CAEE79196246CCF23E0FB9EA969E78B230BB26AD0852D3F56BAA7E4DC30FDD26341C81F17C8A91CA3E29E820002F46CBE933AFF8F8422717C2093C9F2D0333136EE5301E801BE28086CB52C3CCF43005C41A0A7B111A7A949146CFBD32322A036688A9628EE2B226138E027045D3A56838CDE5D8F104DFF8470A40E5194C866B23CBEAA9EE7D64BC7EDE1381C4926B9D534D920096424892E51C4EEE9E188E39096E5E61112501B7455E8171EB4126C2DE095A04BA36108220AE792079F45ED7C8848B40E59D1C866B23CB769028FAF748BCFEC791EA9548A743A8DA4C3E4C5BE6B5F2A788E6D83EFE3F4F6A67FEB388FC8A3B14039E81A09AF86CF4BFD5DD3EBA5E786CA0525E3E9AE3FE1EFBF8D783C8EA207C865D2B41E9AC6D2FFEA2DA90D7C32990CA9540A51F0F9E6AD7873A6E349A7BBA83181D77FE1DB4FC0B56F7ADED65159A0E0F3F2D0AF8E8421A3A286B2A3B18091DC87B9ED3A62D1107A308691CD72A07F165FFA4E12DBF18BCF6B9A26C96412C771F8F2A7F1DE792E"
$sData &= "AE240AE8BA249CFB19C579F13C71610BBCDA07827C32161852E113A83E6CBFD671C9989DEB21BDF113D44544029106CCDC003DD699DCBEBC8F64DA2EF37D2291C0300C6E980F1F790FBE240AE89A24E89A24FC60A5F7F0B3DBBC95806F837F0A16182312068F6B812E8CB94E8EFE9605D405D204A34D38568E346770D777B31CEE4C57F93E93C970D52570DB472524D143D72441D32461E51FFDA7EEFBA1FD04E00E6EBE3C3A0B0C0DBE16C851011F4A7DCFA5B7F526E2F22182B189B89E8D214CE1EB4F4A6CDDDD5DE5FB6432C93FCCF2F9FAE72464594495F3EA6FDE27BC74DB23E6438033B8B980371C017E55423B591246DAAF71DCB3ED2B449CF504EB9BF3FEF6637CEFF94656ADD950F6B0A6699248249832DE65F9BF490434014D95D0145F38D825EC58F035E36ED3C22E51DF057C71A4F5F6A8C09724342AFAC210FDB2E3C1B1FE7DDF2390FA19A1BA2988A286E186F9CD9639FCE89996B267B36D9B442241583379EC7691FAA880A649E89A487F5AECBEE6ABE63DA90CE912F51DC0033CF194C057821B8218610424941D0B02E923CF21757C8B70FD7424358C61CBB476BC83071F7D11DFF7AB7CEFD9191E5D2832B5491C042FA168313EFE15F3FB87BBFDDE0AE5DFBA08108622E644362839CEF56EC2D97F37918669285A0CD3F23968BC9FBB96AEC4B2EC32DFA7D369D2E9140FDD0CE7CF1C04AF4A68AA4657F4"
$sData &= "EBEC3EE41D1B04EB54F8DF1F3101A3015F13F030A15FD9B7D26F92DB792BD1FA496881064CCBA14F9ECFC2FB7F4D32992E7B2EC330482693DCF1718FF75D90575D57F3FB76FD8B18EAF90C867AA5F2DEE0C6C947C030E0AB808D9004C74A90DE7A03D1581D5A683C966D6384E7B368E9EF79F348674DDF7FFC528BEBAE1C04AEE67DDFA95C4752BE0C5996A9A17EC1FFFE8809106AED87035F42DA9063157DDFB3486EBE854848428F4CC0711C9CF07BB9EF9156B66C6B2B7B9E82EFDF3127CB5D0B24745544D344744DA44FBE822EE963C8B28C2449A5115036FD15AE258E50FE9181AE50B58A84A1CA65A07FDB5D84D57E02D1665CD7C70B5DC4A33FE9E4F72FAF2B4B7A05DF4F6B4CF1F0E74582FAF1A49796E772901B91651945512A23C01EDCBCD2297EE411305A122AD707C390906CFB2601771781D8347C245C75263F7D49E0E96756E2BA6E95EF236A826FDF06F1B054046FC9D3D9ED7C0151528BEA9710600D822F53FFCF16010C410CC0C0A1679053AB08D6CD4410556CA191B57B26B3EC3BFF8D6DDB55BEC749F0EDDB5C268C3B0EDE971BD96E2E4290C2C8B25CB695A8EF54821F5512A412C8184440B67B0D743E4EA87E36A21CC4727576769FC757977C9F5C2E57767BD77531B249BE71A3C1EC2983195F939094105B725FC411C79585BEA228A8AA0A600B8260974C7DA327A04AB95182AF95FC8CC44EEC03"
$sData &= "4B09359C89AC46B16D8176E362EEBAEF072492A98A77FF3ED94C9A7B3E99E6E2B38F835755852D995BC932B54A7955550BDF321C55556BAA3F7A0B542C5684A1F6C3548E82206067DB31F6DC4DB8E10C14BD1ECB76E8E742EEB8EF493A8E765525BD5C2EC7F55724B97A9E48402BCCF722DBD3D7D2EB9C8D244945CF9782D734AD60017F2868A7940447B450AAD8BB568AF48EDB09C59B5183A761DB3639F93CEE79F057ECDD7710CFF3AA7C7FE5DC049FBBDA2F03BF377B35878D77A2284A59D86B9A462010201008142CE09F3201C3853CA320C3F36C06762E221489A24526E3380EB6349D071E59C3868D3BAB32BEEBBA9C3F2DC1DDD7D8E89A545CE01C312F6677EAEA62B62FA85F503E180CA2EB7A2109FAC3411B79121C2119437F27F049EDBA1F5D31D1A2A7E37AE0080D3CFAD42E5E7879238EE354F9BEB93EC592CF1A840205DF8BF43AB3D870EC1AA40ACF17942F7CC79465B9EAFBC3D858E0246C0130B0FF5134771F81BAB3F091715C951FFFB6831F3FBB16CBB2AAC0C70219FEFDC601EA2322BA9E2720E74FE0958ECF20886A517949925055B508BE10FAA2288E09013EC3011DA244AE049F39F22C6262158186B92006B06D97D5EB527CE7472F629A66D54D35D9E2E1CF26686E3C0EDE1363AC7EF37A3C215C95ED038100E17078D4EA8FDA02230AF98AFF631C7B15F7C86304C7CF435462D86696969D1996"
$sData &= "3CB2BA6AAECF3F90CB7D9FEA65CE548ECFF5B2CEEFDEB88EAC5B5FA6BCA22845F0E170185DD70BF5FFD81230A4EA27F0BD95DA83B97731E1A679C8FA6958E6006D07D3DCF38D1748A5D265D35D21F4177EA89779677B79F0BA84A6CAAC7EE363F499CD65CA2B8A82AEEB84C3612291088140A0A8FC48C18F6E395C2BEB0FB35C768C4EB23B6E213C7E2E4A78069699A4BDA38F3B1F7C8563BDA99AE0AFBDBC9FF9F3ACE3D39D26F2CAA12B39949A5DA6BC2CCBE8BA4E241221168B110E8751D57C5E180D780A9FBF475A060F6781B2E5AA9D6660F36708C726A3C6CEC1B632F4F6B4B3E8A10D1C6AEFAF020F70C5DC349F7B7F7610BC88AE8BB4765CC2F6EE0BD0F572E50381C098801F310127FA8E5FAABEEF39A4B6DC404003ADE1221CDB64E0D81EEEFD8F6DECDA5F1BFCDB4FCF71E7BF2407E7FAFCF2B6EDD899AC7DE352345D2A03AF691AA15088582C46241241D7754451AC795D4640883C2A0B0CF57EBF48824F72FB2254672F81091FC1F320D3B39E258FB5F1DA96819A0F39ADC9E2814FF7110E0E2AAF49740C4CE237BBFF09593D5EE515327E30182C032F0842F1BAA5D71704E10425D049588061BE040174EDFD25C1FE9F136CBE0A5F0890E95AC3779FDECB73AF3A35C137441D1EFE6C2F0D31B1083E69D6F1D32DF341D2CAD6F585D08FC56244A35182C1209224E1FB7ED5B50B89D017C4B18B8013AB0F0303"
$sData &= "328AFE76F03D324757F3D3DF1EE0C9E7156A456740F578E8FA5EA68CF78BD39DE90579AAE503D87E04BDA2D2D3759D68344A2C1623180C228A22AEEBD6245610044451C413A5B1CF01B5800358461A7049456E21D5FE14ADEB77B3FC67A19AE025D1E7FE6BFB38679A5B2C747C41E1C9F5579234EBD075A92CEB6B9A46341A251E8F17C13B8E53A67E615F505F14457C59ADB2C629E780A1924BEFE19D04E3E3F19C3476DD0731E29371BC5FD7BCD6C20F2778D7B95611BC248B3CB5FE323A52138B19BF147C21E317C2DE755D3CCFC3719CC17E9E084100511411250959927165DF035CCF1B9A81515960B828C8A48EA28502D8463FB699E06DB363BCE7A2C9ACDD70B8EC129FBA3CC547DE952BCEF5B22CF0AB2D17B0EBE8F4A2F2A22816C187C3E1E274A7284A7E0569DB58968DEDD8B84E9E0C1F1F813C0192ACA045EB7962C5B75703475555B51CC71EA33AA046F83B968191E946942279028C04B699E0BA7F9E8CEF0CF0EAA6043E70F9DB32DC323F9D07AFE7C1AF699BCD1FF69F53A67C61755798EEA2D128AAAA625916A669619A26966561DB763E0A3C17DF07511050348D58C33856FEEF4F5A1E7CE0FE07544D3BA46AAA99CD66C6200286F8CDDFB1C3DBD102EA20F83C0196D98FEF24F8C43F06987B86C98E7D19165F9324A01F07BFEDF0247EB5E542343DFFFEAEB0A40D0683442211E2F138F1781C4DD3B02C"
$sData &= "1BD334C8E50C0CC32892E0B82EBEE7218A2275F575D4D5C56859F7EABE7BBEF4A5458AA2B4C5E2F144775797F79624C1424BF6EC073F8B6D1E075F8802D7C930734A90D933C6A1697D043490658143BD0DFCB8E53242E128A150A8B8A029ED17929EE3B818468E546A804C2643CE30B02C0BD7751004814913273165CA6400B66CDDDCBD68D19DB7F9BEBF63DCB87189F6F6766FCCA6C15A51E03A36E9BE03684101DB4C6299491C338563A7F13C1B490E226B51142DC6FE817773B6BE09C796F89FAD1FA2B1A989783C5E2C6C0A04689A86AAE6DFEFDBB643CEC8914C26E93C7A14DB71D1758DC6710D4C98308189932622007D7DFDEC69DB9DBEE3F645FF9A1E486F98387162E2C08103DE98578295FD37DAB6204A368E95C3B652B8F600AE9303DF435682484A08598DA26A717AFAE23CDD329D68E33466CE994A3C1E271A8D120E878B2F326459C6F77D3CCF2B867A369B233D90C6B26D3EB56041715A735D07C330E8EBEBE7F5D7F7D98BEF5DBCB0B3B3F3A52953A624F6ECD9E38D04977CB2CA17DA6F56ADA1EB701B1FBEBC1ED7CEE2B91608029212429203484A98DE8440D28A113BED3CE6CE9E4C341A2DBEBDD1340D45518AF3B7EBBAD8B68D31E871C330C866B364B359344DAB09FEC01BFBBD254B972E6E6BDBFBF3D34F9F91DCB66DBB375248276781C104E838366BD6AEE5586F3F89FE632CB86A1C822021C9"
$sData &= "0A82A493C9EA209E4BF3F917736E4313C160B008B850E1151632BEEFE3BA6EB1BAB34C0BC334C91906462E87619A343535D500FFBABF6CD9F225AD2D1B1F9F3D7B5662E3C64DFE68708CBE142E699B37B6D273AC8F5C2EC7DA963E8E76F572F32766138F4E20DE7C29B3675C82A6878A800B737CAD778605120A058E655BF969CF30304C13DBB699387142257856AC58B1EC9597D72C9F73D69CC486F51BFCD10A79D21100F0D2CB2F91CD66C9E5721886C1D1DE0009F94ADEFFA16B41902A7E5F9C2F522AA3A800BC00DEF33C1CD7C529143BB69D7F69EAFB4C6E6E2E537EC58A15CB563DBF6AC939E79C9D78EDB575FEC960904FD6FB9EE7B27AF50B64B35966CE98C68D37DDC4FC0F7C1045516AFEB0E244AD9408D771701C17D771B007CBDDE6C9CD080245CF2F5BB67CC92B2FAF597EF629803FA54268F3C656A64E9DC2035FFB1AEF7CF7A527F5366628123C2F1F0DAEEBE2B9F922E7F419338AD97EC9D2A58B5B5B5A1F9F33674E62DD29803F250B9C7BFEDBF8D1134F8E09F0E1A20101C635342049127BDA76A717DFBBF80B6D6D7B7F3E6BD619C90D1B5AFC53BDD74913A0AA1A6F55138EFF621A455599D43C892D5B3777DF71FB1DB7767676BE387DC68CE4A64D9BFDB1B897C85F513B9E344544414492659A9AA7B06963EBFE9B6EBAF9BA8E8EA32F4E6A6E4EEED8BEC31FAB7B8EEAF70183F15915AE630B5E40"
$sData &= "9244644521DA34893FBCF442CBCD377FFEFA5432B5A1A9A929B9B76DAFFFE71224065CE5BFC5CDF33CDF715DDFB01D7F2067FABD0319BFBD37E9B71DE976EFFAF27DCF8BA278B1A669F1091327BE257FBB280CA348D8F7FD59C084BF90555CA05D55D583B1783CD5D3DDEDFF5909501445721C27E0FBBEC45FE62F477D45514C3D10300752299FBFB7BFB7B7A4FD1F40C5C36CDAB0B1790000000049454E44AE426082"
Return Binary($sData)
EndFunc
Func PNG_DocumentOpen_64x64()
Local _
$sData = "0x89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971DE000000017352474200AECE1CE900000006624B474400FF00FF00FFA0BDA793000000097048597300000B1300000B1301009A9C180000000774494D4507DC061A032B3932FFFF97000009CA4944415478DAED5B4DAF1C47153DE756754FDE7B8943E20412E338C10A020C44410221212145598090105B84445076D9B041880DFC059455589015321BD62C00898F053B600309582050024EEC98C7736CBFAFF9E8AA7B5954774FCF4CCF9B9E79F31E96434BA3E9E9EEE9AE73EADC736F55CD00EFF18DCB5C2C2242124CDB5D05C4CC606983AAEABA09A0732E57D54D33CB9625EE34792059645976381A8D46006C5D0478008F00387FE9D2A58B24FD5D89DE2C5CB972E50D006F03D80110D645400FC00500CFECEEED5D76229B9377E1F8466568B0EDDCCCD3573C37672B8AE2706B6BEB1B005E037015C0B04BCF760D950CC0460C81263209748A8085FBD567B3498D36AF993ED746EED4A6AA04B051B6955DA5BD9C6992E3862E4B4297CFF5E1956D66A92FFA959FB00E0574947C573256214DBA5CF4C0234FCD80E734F8941E8FDE2F1B79D4E78963E5EB24B74E049CF9C0C576053441B6F424A78F57605AC02D0B785D24CD84C00BAFBCF54500AF96AE0F98211443ECDFFC176E5E7D0D4109E7E7035E24FD69D0EB92F4AA24B479C00F"
$sData &= "6BF08B5CA6830296057EDA15661B014F00C0973FBD99901A301A3A6C5FDBC01BAE0727F3C12F52C03C7027017AEBE1F33878F7EDD53D20A821444BEFE52B9AA5FEEF089E0BC0778DDFE9783FEA55FBD6A31F3A5E1A8C715C866834A802D510838B14D0D89F07FC24623A446C7CEE85972F9FBDF00CEE3FFB247CD6ABD335801180EFFFF89B4F7CAF9B02221014B50AA25A4DC04205CC01BFA8C74F38F5E500BEDD5D016AA50724F0D10C6AE918A7CCB00D701BF893767B11E2A31FCCF0E4D3391E7D3C47968F15F0DBBF0CAB314D3702825A633F8544F28076D0AB805F671AAC3BCE0C311A8202542C1C111FAD80C67EB4860774047F9AC0C70322205A6AB3A8AD6E82211A48C0ACEC7D4D21D016F3EB00BFAEB8D72A64A3812586632B20284A1334589906BB163DEB02DEF53A2D0D3B85C0311410EB5935ABC157BE38CF04D7097E5545A88D494821C0D543A0CA02A164342A8ECCF35DC19F64291CB54CDF9A4260D1EC801C150229F6930768E90127057E1D552148A8A5B636DBDE2CEA5E78E52D2E9D06A3A69B759F6C5E8F1AE69D37B3B9D769A9D4A8764C0FA843607C436DA903BAE6FDE3844213701BF8EAB895C55AD5619321C0253D40C70454A570AC2AC125C6F4AB1A630574FABD8D88FA5E96DA18CBC15BEDDAAB10309105CA3AC074F19CE371D5D004DC06BE4D0113DFD1B17FD11D230B1C0CB5FE6A2814FDC230"
$sData &= "0CB614D855C04F035FA484E92268180CFDC2908F14DEAC510A27BFBF7DD0EF46C0D59DDDB11A8A010E6FEDE3F65EBF6EC032839D45E0A701B791304F1153EB02D8D9EB23DCDAC71DEEC265A3FADC439B0F0300EE1C0C269FFFEC777EF7AB10ED79DCBDEB7D27B559EEE5371EE0734EF85E030FA44AF939EFBD3B50B533AFBEF4B1A173552CC2A9999F721A981932EF4E542A76CCEF1721D645D14CD547063225B39D3B83DE777FF2E681CF9CDB09D0337FBC3A18DD973B2D8B899E350830003085A962732347A719E355C0DAF1683000FD41018A009499B65018841886A872F5DFBBBDCCB91D2FE47527BCF8FA5BA362EBBE2C949DEDA7538F99C262C099070447AEDBAEC480B51CB795A8D8DD1F82CE839436A30E24868351C8DEBC7E002FBCEE45E41000FEB31BAD1FB258B640279DD660D1A0AA300790B602DA7606AC858C365EAC1315C4ED03854855034C671C18C0B87F18DCF66E807772E833EFEE84088022DEF9469A995200220883736EA5111BDBFABA2B689BFECABC721870E221CE83222DEDAC064D22CE099C7377BC77F28EA5991EF1CE4D487E22C7121018BC73ED21B082F46D16D9CC316B6760E6B89961BF3F84F71E222EF9C08C02A45AAB102702EFE41D6F861D110108C933A966556853CF343528059997354D5F19CC38D38506B694B84D42AC7E27084A2AA40EFA05C4097C099E6C258022040811119861"
$sData &= "C7E7993B2C828230C93DEB69259D689CC1945002B96799615627C16CB6466F1EB3BAEB13B8D41EAD2B471181880390CE1D0E0A080DBDCC81E212F8D63498A6CE09AB1470E8BD7337D50012926715016473EC9F14001889AC26A07B0C7052ACE36B2724CEB2A7CBF3E5392BA7B9F3FCBE527996D4680A53A05F0400863C4FD24729FDB6301521450812E29C20F3EE6699060530B057121022A11393092C15C086028EC24ECC75A9BA97E71C6BC6B8A5D52847A2974BFA6C8031BD0F438099A297973D2F7264478810DE1130D08940C8EBDE09F7D504D6080121997E6FD45400612472BFE4BC5D63AC3E0FBCB57940B99FDAE190BB34BC4F5E048C46115123F27C52F647B54C84F48EB0320444B8EFB3CCEDAA29CCC6212024A2B679009165C97896AD06AD21FB967A676C8A56B94019FF11704E202E799311188588A0A1EE79B05B6A7642784F98A52C9067B2EB33EFB64304D420BD9CF574BFC4299352C004C8B3050B9C9DCBDE69C79FCD0EA6402490E52EA5661A86312084807CC6F03A10E0C03C23D46A0FD8F6975F3AB7FDB51F5C533330AB7EFA626494A9BCAB84C6CA038E9706A7B3C0440668D403A6807702E7D264C7200484186BF0A8CADD8E59C9099979C28CF48E7AF9A573DB1E0072EF0621DA2661CC33313350143326685265012E0CF956FF3BE258DBBEAA814CE9EE7010106BF05212B05C47380109A313A177"
$sData &= "ECD733427926EF1A6C9384F4324635D2E9548F29A07342809DCA1ECCAFE68CB3FB0698090CC061BF486EDFF389102907644B0A51848C31C93FCFF86E4D80885C13B1F36A26DE317A01159359004C26E81D977A3867067D47A5BDC97DD554DEAA19B2AC8C777173F37C17028A60222270C26B8D3941EE392142306132E289FB33754C632D70B97100E72882D314552B4E060455EC1E0EA0C632C7BBF1187F450F3218434829D080BD9A80CCCB9E99A108E5D4A94DB6793C36246EDEDE3B9D093B2BD311652DE02B5C4580B8E4650D029CDB8EAA0831E51F33D0660792301266B28689AB8E4B6BD5A0868D7E39DEA319A2D13941E664BB2680E40D2782A09034F69F33DEA56B4C869C380553737BC71F811AC010E15C9A2BB85113B0914B3FADA941CCD05E509FC20F97D733CFB64801F0DE0936F2461A7CF441DE7A3008B67A94229A0BCB2C039F8E23ACED4E9B3DF8730F3BE41EB76A021EE0EEF5871E3B8BC22037F7477E3028EED19500E2FDF7E7EEDCFB1C6EDFBA75BD26E0AF7FF8D9FE57BFFE22068579DEB6CD98B95331BAFF45189D3FEBB891097EFFCB5FEC03003FF3F92FF0CDBF5FB9F8F28F7EFAF38F3FF3ECD3C27B7B9548CDECCAEB7FFAC7B75EFCCA973EF1A9CFBEC173172EF2C6DBFF7C4C559F07F049005B0004F7DE5AA10150000700FE2C22BF7EEAC3976E10007C96F542515C00F011008F9724F87B8C80"
$sData &= "50827F07C0DFB22CBF5A14A361B3973D80CD127C0F80BB8754600022D2FF080F001C9684B4FF63ED2412F05D9447EF3577FFFF76ACEDBF58A454AAE61E47020000000049454E44AE426082"
Return Binary($sData)
EndFunc
Aber ich include die als extra au3. Somit sprengt der nicht meinen Code.
Und so dann die Zuweisung zu den Buttons:
Global $cNew = GUICtrlCreateButton("", 200, 100, 100, 100, $BS_BITMAP)
GUICtrlSetTip(-1, "New")
Global $hBmp_New = Load_BMP_From_Mem(PNG_DocumentNew_64x64(), True)
_WinAPI_DeleteObject(GUICtrlSendMsg($cNew, $BM_SETIMAGE, $IMAGE_BITMAP, $hBmp_New))
Global $cOpen = GUICtrlCreateButton("", 350, 100, 100, 100, $BS_BITMAP)
GUICtrlSetTip(-1, "Open")
Global $hBmp_Open = Load_BMP_From_Mem(PNG_DocumentOpen_64x64(), True)
_WinAPI_DeleteObject(GUICtrlSendMsg($cOpen, $BM_SETIMAGE, $IMAGE_BITMAP, $hBmp_Open))
Hab mir auch noch ein kleines Script geschrieben, welches das PNG binär liesst und mir gleich als fertige Func in die Zwischenablage schiebt.
Global $sResult = 'Func Foo()' & @CRLF & @TAB & 'Local _' & @CRLF
Global $sTmp
Global $sFilePath = FileOpenDialog("Datei auswählen", "D:\AutoIT\PVI\images", "")
Global $hFile = FileOpen($sFilePath, 16)
Global $sData = FileRead($hFile)
FileClose($hFile)
While 1
If StringInStr($sData, "0x") Then
$sTmp = @TAB & '$sData = '
Else
$sTmp = @TAB & '$sData &= '
EndIf
If StringLen($sData) < 1024 Then
$sResult &= $sTmp & '"' & $sData & '"' & @CRLF
ExitLoop
EndIf
$sResult &= $sTmp & '"' & StringLeft($sData, 1024) & '"' & @CRLF
$sData = StringTrimLeft($sData, 1024)
WEnd
$sResult &= @TAB & 'Return Binary($sData)' & @CRLF & 'EndFunc'
[/autoit] [autoit][/autoit] [autoit]ClipPut($sResult)
[/autoit] [autoit][/autoit] [autoit]MsgBox(0, "", "Der Code befindet sich nun in der Zwischenablage.")
[/autoit]Du kannst die Binär Dateien weiter verkleinern, in dem du sie nicht in Hex Code umwandelst, sondern in ein Base64 Code. Fernen kannst du auch die Binär Dateien vorher komprimieren.
Beispiel: File to Base64 String Code Generator
Gruß,
UEZ
Also laut dem Tool beträgt die Kompression 0 %, also bei Saved.
Es sind ja auch kleine Grafiken, da bringts glaub ich nicht die extra nochmal zu komprimieren oder?
Stimmt, Grafik Dateien, wie JPG oder PNG können nicht besonders gut komprimiert werden, aber die Base64 String Länge ist kleiner als ein die Binär String Länge.
Gruß,
UEZ
Naja danke trotzdem. Von der Länge her ist so alles ok.
Also bei XP siehts es auch super aus. Habs jetzt so:
[autoit]Global $cNew = GUICtrlCreateButton("", 200, 100, 100, 100, $BS_BITMAP)
GUICtrlSetTip(-1, "New")
Global $hHBitmap_New
If @OSBuild < 6000 Then
$hHBitmap_New = ConvertBitmap(_LoadBmpFromMem(PNG_DocumentNew_64x64(), False))
Else
$hHBitmap_New = _LoadBmpFromMem(PNG_DocumentNew_64x64(), True)
EndIf
_WinAPI_DeleteObject(GUICtrlSendMsg($cNew, $BM_SETIMAGE, $IMAGE_BITMAP, $hHBitmap_New))