Page 1 sur 1
[R] Image dans exe
Posté : mar. 03 nov. 2015 12:05
par baldemic
Bonjour,
Ayant mal rédigé mon premier message et posté dans le mauvais forum, je poste à nouveau le même message car j'ai une autre erreur.
Nouvel inscrit et tout débutant en AutoIt, j’essaie d'adapter un script de Telm "Une image dans votre GUI sans fichier temporaire.
http://www.autoitscript.fr/forum/viewto ... ier#p49940
et à la ligne 61, j'ai le message d'erreur suivant :
"D:\Documents\AutoIt\Examples\image dans exe.au3"(61,27) : warning: $ghGDIPDll: possibly used before declaration.
If Not $ghGDIPDll Then
Je suis un peu dépassé.
Merci d'avance de votre aide.
J'ai reçu la réponse suivante :
Bonjour,
C'est parce que vous travaillez avec un vieux script. Il faut remplacer la variable par $__g_hGDIPDll
Autrement, vous êtes dans la partie règle du forum, pas du tout dans l'aide
de "walkson" que je remercie.
Mon premier problème a été résolu avec cette réponse, mais le script se lance et s'arrête avec l’erreur :
!>11:28:21 AutoIt3.exe ended.rc:-1073741819
+>11:28:21 AutoIt3Wrapper Finished.
>Exit code: 3221225477 Time: 3.322
Merci a vous.
Re: [..]Image dans exe
Posté : mar. 03 nov. 2015 15:39
par jguinch
Ca serait bien qu'on voit ton code ...
Le script de Tlem fonctionne bien après avoir remplacé la variable (en tout cas pour moi sur du Windows 7)
Peux-tu préciser quel version de Windows tu utilises ?
Re: [..]Image dans exe
Posté : mer. 04 nov. 2015 07:13
par baldemic
Pour le moment, je n'ai pas essayé d'adapter le code de Tlem . J'ai juste fait un copié/collé.
J'utilise windows 10 Pro x64.
► Afficher le texte
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
Re: [..] Image dans exe
Posté : jeu. 05 nov. 2015 10:15
par baldemic
J'ai essayé sur Windows 7 x64, ça fonctionne très bien.
Par contre sur Windows 10 x64, toujours la même erreur.
[R] Image dans exe
Posté : jeu. 05 nov. 2015 10:26
par baldemic
Pour info :
Quand je compile en x86 ça fonctionne mais pas si je compile en x64.
A force de fouiner, j'ai changé ça :
Avant :
Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[color=#FF0080]#AutoIt3Wrapper_Compile_Both=Y[/color]
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Maintenant :
Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[color=#FF0080]#AutoIt3Wrapper_UseX64=n[/color]
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
et ça fonctionne.
Merci de votre aide.
Re: [..] Image dans exe
Posté : jeu. 05 nov. 2015 10:46
par TommyDDR
Merci de rééditer vos message pour éviter le multipost.