Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version : 3.3.6.1
Auteur: Tlem
Fonction du Script :
Affiche une image en fond de GUI sans passer par un fichier temporaire..
Ce code utilise la fonction Load_BMP_From_Mem() trouvée dans ce sujet :
http://www.autoitscript.com/forum/topic ... 6-17-beta/
#ce ----------------------------------------------------------------------------
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3> ; Indispensable
#include <Memory.au3> ; Indispensable
Global $GUI = GUICreate("Ma GUI", 250, 190, -1, -1)
Global $Pic = GUICtrlCreatePic("", 0, 0, 244, 156)
Global Const $hHBITMAP = Load_BMP_From_Mem(MyImg(), True) ; Indispensable
_WinAPI_DeleteObject(GUICtrlSendMsg($Pic, 0x0172, 0, $hHBITMAP)) ; Indispensable
_WinAPI_DeleteObject($hHBITMAP) ; Indispensable
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
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
; Return Value(s): Success: handle to bitmap or hbitmap, Error: 0
; Error codes: 1: $bImage is not a binary string
;
; Author(s): UEZ
; Additional Code: thanks to progandy for the MemGlobalAlloc and tVARIANT lines
; Version: v0.95 Build 2011-06-14 Beta
;=======================================================================================
Func Load_BMP_From_Mem($bImage, $hHBITMAP = False)
If Not IsBinary($bImage) Then Return SetError(1, 0, 0)
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 MyImg()
Local _
$FileBin = "0xFFD8FFE000104A46494600010101006000600000FFE1001645786966000049492A0008000000000000000000FFDB004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432FFDB0043010909090C0B0C180D0D1832211C213232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232FFC000110800BE00FA03012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D"
$FileBin &= "01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434"
$FileBin &= "E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00F31A28A2BD038828A28A002971F85029D4C425380F5A00A701EB4C0402971EB4E02942D02131ED4B8A762942D5584340A36D3F1ED4B8A60376FB526DF6A936FB518A2C047B7DA8C7B5498A36FB516022DBED463352629314011E29B8F6A971ED4DC52B0119148454845348F5A918C23BD37A53F14847A503"
$FileBin &= "23228A7521A40251451486145145001451450014BDE9075A7502014E140A502A8000F5A78068029E07B53489100A762940A7015421A07B5382FB5380E2971ED4C06E29DB69C052E2988605A315262976D3023DB4856A5DB498F6A008B0690AD4A56931ED4808B19A422A42B4D2B4AC323229A7A5498C5348EB4864641A69152114D239A96864645369E460D348A4319453BA8A69A900A28A28185145038A00514E0334829D4C428A781CD201DA9E073549081453C0A451D29E0715448018A781401CD380F5A620038A7014A0669C17DAA84371ED4EC7AD380E7A5285A6219B7DA971ED4F0B4B8A02E478A36D498A42280B916DF6A42B52E29B8A2C099191EB4C"
$FileBin &= "22A623B5308A43222314D22A52314C22A46447BF14D22A43D69A475A451111DA9A454845308E2A06308E69A4714F23AD348A431B4507AD148614A3A520A701DE810A29E3AD3453C722A80728A728A41DA9E3B552448A3A53C0A414F51542140A7A8A451D29E07A55122814E03DA8039A7819AA25B136D382E7B55CB1D3AE2FE7586DE2691CF200F4EE4F600772781D4D75B65E16B6B550D74DF6897BC68C5631EC4FDE6FC36E3B1359CEAC69EE5C29CA7B1C5085C8C9181EA78AB51E9379326E8ADE5917FBC91923F4AF42B789ADC8168896E47436E811BF161F31FC49A8E7BC88498B8BF8C49FF4DAE067F535CCF19D91BAC2F7679DCB65340DB25428DFDD61"
$FileBin &= "83F9544D1B2F5535EA56EF733C445BDDB3C5D0EC94B2FE3838A493C376B7EA7CFB58813FC70288987E4369FA95269C716BED213C2BE8CF31B6B396EA658A28D9DD8E155464935D4D8F81FCF51F68BD58DCF6862F3B1EC4EE51F8A923DEBA1B2F0CC5A3ACE449E6993E55665DA553B8EBC1278E3B28E9B88ACE9356D4F4CBB68534EB4914731C8F7F0C5BD7D76BC8AC3D0F18CF7A8AB896DFB8553C3AB5E466EA9E00BEB681A6B36FB5A28C9409B24FC17241FA0627DAB8C75C1AF64F0DF8B9AFF598346D42C22866B80DE5BC372932E550B60ED2C3A29E8C7D315C7FC4CD1E3D2FC429710A858EF50C8401FF002D01C39FC72A4FB935542BB93E59055A2A2AF1"
$FileBin &= "388238A6115291C5308EB5D6731091C5348A90D31854B288CD30D48DDE986A58C8C8EB4D239A79E69A6A4A194DFC69C693348007AD385253C75A005C53C53475A78A621C29E38A6AF6A7AF6AB421EA29E3B53145483B5512397B53D4520A78AA44B154715A9A46953EA9789042BC9E598F445EEC4F603FC00C920567C4BB980AF52F0FE989A4696AAC3173300F2E7AAFA27E00F23D49EB8159D6ABECE3E65D2A7CF22C596996FA6DB0B5B55243637B91F34A47427FA2F41EE724E54BAA4B7F70D69A1C315CB29DB25DCA488233E831CB9FA103DCF22ABEBFA93DF5D3E916D2158178BC914E0B13FF002C81EC31F78FE1EB5AFA4471C16A91C6AAAA38C28C015C"
$FileBin &= "31A6E7EF48EB7351F750C83C1D05E286D66FAEF5163D6367F2E1FC235C0FC6B561F06E83146163D1ECC0FF00AE40FF003AD0B421980F5ED52C9AFD85B3796332B75257A63D88073FE04119A25688D5D9CFDDF81B4176F3134E8A0947DD9602D1B03EA083555175EF0FBEEB4BA3AADA0FBD6B7EDFBCC7FB13019CFF00BC187B57582FADAF5098490D8CEC61838E0123DB247E6320646736E9860D35152426DA25D3F54D3FC4B652BD9978EE21C0B8B5980596127A647707B30C83F5040E3F5BD2B58BA9DADE5D334CBBB547DF0C8CF346FD3B95901CF638E0E3381C010EA8B359EA51EA5A7CBF67BC8798E503239EAAC3F890F71FD6BB2D3F54B6F10E8E97F146"
$FileBin &= "2294131DC404E4C5201CAFB8E4107B823BE4567529B832E1352307C19E19BFB4F1141A94A96D63042AE3C8B79E590CA594AE1B796C2F21BEF1E54703AD73FF0016B578AF7C5505840C1FEC3115908ED23E095FC005AD7F17F8AF56F0E59431E990469F695602F09DCC8C3AAAA63008054EE248E4F19071E5904523BB4D3333BB12CCCC49249392493D4935A61E9B72B99D69A51B131E94C6152B0A6357A2CE24C89875A8D875A95875A61EB525111A61A90D31AA4A2334C3D2A46EB4CA818C3498A534521883AD3853474A78A0070A78A60ED4F14D123C76A905317D69EBD6B410F51522D316A45AA247AF5A7A8E94C5A905325B36FC3568B73AB426450628CF"
$FileBin &= "98E08C8207201F6270BF8D76BA9EA86CECAE2EB21DE34CA8639DCE781FA915CBF85F082E24EE5550FD09CFF3414FF12DC6DD2E303F8EE0647B0563FCC0AE0AFEF55513B28FBB4EE57D2D828F99CBB124B31EACC4E493F539AEA6C6E36E39AE16CAE3680335D1E9B2BDC4AB1447E623393C851DC9F6FE7C01C915DB3828C4E78C9B676504A678D901C47D1DBFF651EFEBDC0F4DC0D37CA8BCDC92093C9CD67B4CD0441132001DFA9F527DFF00C8C0E2B1659EEB53BB960B7BB6B48EDCFCF3A0C932E32A98EEA382DEBC2F7615E63BD4968772B416A76E9046C9FBB608E0E54819C11EA3B8E48FA13C8EB5977774416561B5D4E1973C83FE7907B8208E0D64E97A"
$FileBin &= "D4F3291247E5CD1379734639D8E39201EE082083DC1157B520F756DF688D499635F995464BAF5E9EA3AFB8C8E7E502A94B965664D45757462DFCC086C9CE6A9F86F553A6F884C3BBF717ABE5383D378C946FFD097FE042AA5E5DE475AC296ECC57293E705183E7FDD20FF4AEFAB4EF4DDCE4A73B4D1E89AFC29A96817D0100BC20DCC67D0A024FD72BBC63D5ABCCC018E3B57A5C7305BC2241F2071BC7B67915E6611A37689CE590ED63EE3835CF8496F135C4AD988C298DD2A43D2A33DEBB0E6431AA33521A8DA91446D4C3DE9ED4C6EF50CA2334C3D6A434C3DAA06861EF494A7AD2521883A53C77A60EB4F1400E5A78A60EB4F1D29A24917A53D7B5462A45"
$FileBin &= "AD0448B522D46B4F5ED544920F5A907A546BDA9EA6992D1D3F860EEF3D0752AA7F2CFF008D1E2D8993448A5EC2E4271EE921FF00D96AB7862E162D6218D8E165CC5CFA9E9FA803F1AEABC41A5B5E787EFE18D499447E6C78E49284310077254328F76AF3EB7BB5AE7752D6958F36B69492A143331200551924FA003A9AF5BF0EE85FD99A68FB46D3772E1A6C1C84F4407DBB91D4E79202E3CB3C33AAE93A45E3DDEA5F689278B8B68E2B769029C7DF27A647451CE0E4F04293D5C7F116C146D106A0C3B62D48CFE75A622A4A7EEC5684518463EF3DCDFF00135F26976AB140E9F6EB9044390088D47DE9587A2E463D58A8E9922A5A6857B6D6B1C49184551F76"
$FileBin &= "493E7C9E496F5624924FA935CCD96BD1AEB4FAB6AB0DD4D74FB5A24B785A45880276AE7B6CEA3D5896E38CEEAF8D2DCF234FD5C8F6B26ACBDEA5A456A5DE35356F42D47A2DFC1AB4178AB0E1B115C297E1A3CF07FDE52491EA0B0EF9AEA2DA245C6D3823A115C5C9E36B503E6B0D547D6C9AAB0F1FD9C4DCDB6A207FD7A3544D4E4EED171718AB2633C6DA31D2EE85E5B28FB15C37DD51811498C95C760402463A608C0C0CF13206B990429CBC80A2FD4F03F9D76775E3CD16FA096DAFADF516B69576C882D9B247A8F4208041EC403DAB9FF09D90D43C576E2176960B77371E618CA6523395254F232DB148E7EF75239AEA8D697B371974309525CF78F53BF9"
$FileBin &= "22125DCDB546198E3F13C579A34826BA9A453F2BB961F89CD7A6EAD20D3745BCBC3C3221D84FF78F0BFA915E5B6C3E4CFE559E117BCD9589D894F4A8CD48D51B5771C8861A8CD4879A8DA91446698DDE9ED4C6EF50CA18DD6A33521A61A81A187AD2529A4CD21894E1D69B4EA0078A78A8C53D7AD313245ED4F5E951AF4A78ED56844AB520A8853D4D5124A29EA6A31DA9C0D522593C6EC8EAC8C5581C861D88E87F3AF5BD1B514D534DB7D4222165E8E14F2920EA3F3E47B115E423A56BF87BC40FA15F1670CF673604E8BC91E8E07A8F4EE3DC0AE6C4D3E65CC8DF0F52CF9595FC69E1D3A26ABF6AB58B1A7DD3168768E236EA63F6C751FECE392436312DE6"
$FileBin &= "1C735ED172B65AB69CD14CA9756572A1B86E08ECCA7B11D8D799EBBE0EBCD1DE4B9B5DD75A78CB79CA3E6897FE9A01D31FDE1F2F4E84ED1187AC97BB22EB516F543F4E6DC4574F6EABE5835C658332918254D74305CCE100120FC8577B8736C79EE5CAF525D4000A715CB5ECBB58826B6EF2599D482E7F018AE7E4B3B8BBBA5B7B78A49677FBB1C6A598FE039FF0A1C7915D950F7DE8674CFB89E7EBED5EB1E0EF0EB689A516BA42B7D7586951B83120FBA87D0F24B7B9008F96B3BC31E108B4A963BED44A4B7AA434512B06480FF7891C338ED8CA8C6416382BADE23F12C3E1EB0DD9592F6507C888FF00E84DFEC8FD7A7B8F32BD5E77689E8D2A7CAAECE77E"
$FileBin &= "226AE8D2C1A35B904A112CF83DF1F2AFE473F88AE5235DB18155E2335D5C497570ED24B2316676392C4F53564F4AEAA14F92273569F3486B1A61A713D698DDEB666635BBD46D4E34C3D2A4A1AC6A3269C698C79A9286B75A61EB4E3C537A540C61A28349CFAD2180EB4A29B4A2900F14F1DA983D29C0D5089076A783C54629E3B552622453D2A41508A9071544B2507A53C1A881A783C5508941F7A52370A603DE9C0D513B1A1A3F882F34290AA0F3AD18E5EDD9B001EE54FF0009FD0FEA3B8D33C4165A9112585C6D9D7E63113B6443EB8FEA323DEBCE080C306ABC96F920AF50723D8D7255C35F589D34EBD95A47A6DCE9FA6DCB979AC221213CC9013137B9"
$FileBin &= "3B48049F5604D41FD95628008A5BD03BF992C6DFCA31FD6B84875FD6ECC0517924A83B4C049FA9E7F5AB23C69AA81F35BD9B1F5D8E3FF67AC12AD0D15CD5BA53D59D9FF65E9B9CBADDCDEA92DC0087FEF8543FAD5C81E0B385E2B6862B7888CB88D42E40EEC7AB63D58922BCF25F186AF28C22DBC47D638893FF008F123F4ACCB9B9D4B52FF8FAB996419CED63F2E7D768E07E5472559EE1CD4E1B1DB6AFE37B6B3468B4FD97571D37FF00CB34FC47DEFC38F7ED5C4B35CEA376F77772B4B2B9CB33753FE03D076A586C95482C727DEAD7006057452C3A8EACC2A5772D108005181484E68269A4D7518084F7A6B1A18D309E2A4A109EB519A731A613C549421A"
$FileBin &= "8D8F7A71E38A61352C634D34D29EF4D3D6A4A1334DC529A6E7DE900B4A0D251DE90C753C1E29829C3AD310F1EB4F151834E079AA4C92507A53C1A881ED4E07354225069E0D440D381154226069C0D440D381F7A6224CD3835459A7669DC5624C834D2A9DD4526EF7A3340870551D1452E40E94CDD49BBDE801F9A696A6E690B5171D85269A5A90B7BD34B5218A4FA5309A09A61A918134C278A52698C7BD2188C69869C4F34C3CD4B65087A534FA5293CD34D48C43D68A28A430A28A280141A5A6D2F6A621E0E69C0F14C14E06981203DA9C0D474E069924AA734B9E2A307D69C0FBD508933EF4ECD459A7034C56250D4A1BDEA2CD2EEF7A6049BBDE9777BD47"
$FileBin &= "9F7A5DD4C43F77BD1BA99BA90B5003F3499F7A616A42D48638B5349A4CD377520B0A4FBD349A42D4DCE7BD218A4F14C279A09A69352D8C42690D04D34F5A450534D2D254805145140C28A28A0028A28A00752834C14EA621E0D283CD3334EA603C1F6A507DE980D3875A69923C1F7A766A3CD28CD34C093346EF7A6669734C0937526EA664D2E698876EA5DDEF4CCD266801DBA909A4C9A4CD218E269A5BDE933499A4D80A4D373487A5373C526C604FA521A0D373D690C5A69F4A0D21A4014514521851451401FFD9"
Return Binary($FileBin)
EndFunc