Page 1 sur 1

Utilisation d'icon intégré

Posté : mar. 02 août 2016 00:17
par liberodark
Bonjour,

Je vous expose ma question en gros j'ai eu indication de comment mettre des icons dans autoit et sur un exe via la compilation. Ce qui est un très bon point mais voilà j'ai ajouté mes icon dans autoit et dans ma compilation !
La chose qui me dérange étant que sur mon script sans udf et sans dll j'ai réussi à avoir une icon mais je ne c'est pas exactement comment cela ce fait.
Voici l'exemple de mon code :

j'ai au début :
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=steam.ico
#AutoIt3Wrapper_Res_Icon_Add=open.ico
#AutoIt3Wrapper_Res_Icon_Add=steam.ico
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Puis :
; ====== gui ========

$hMainGUI = GUICreate("Launcher SSE", $iW, $iH, -1, 150)
GUISetIcon("steam.ico", -58, $hMainGUI)
GUICtrlCreateLabel("Open Source Launcher 2.1.0 Build 1", 48, 8, $iW - 56, 32, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 14, 800, 0, "Arial", 5)
GUICtrlCreateIcon("steam.ico", -131, 8, 8, 32, 32)
GUICtrlCreateLabel("", 0, $iT, $iW, 2, $SS_SUNKEN) ; separator
GUICtrlCreateLabel("", $iLeftWidth, $iT + 2, 2, $iH - $iT - $iB - 2, $SS_SUNKEN) ; separator
GUICtrlCreateLabel("", 0, $iH - $iB, $iW, 2, $SS_SUNKEN) ; separator
$hFooter = GUICtrlCreateLabel("© 2016 liberodark", 10, $iH - 18, $iW - 20, 17)
GUICtrlSetTip(-1, "GitHub", "Click to open...")
GUICtrlSetCursor(-1, 0)

$intro1 = GUICtrlCreateIcon("open.ico", -131, $iLeftWidth + 100, 100, 64, 64)
$intro2 = GUICtrlCreateLabel("Welcome", $iLeftWidth + 95, 180, 100, 25)
GUICtrlSetFont(-1, 14, 800, 0, "Arial", 5)
La il y a donc mon icon steam qui fonctionne elle est bien visible sans le fichier alors que les lignes suivantes non :
GUICtrlCreateIcon("steam.ico", -131, 8, 8, 32, 32)
$intro1 = GUICtrlCreateIcon("open.ico", -131, $iLeftWidth + 100, 100, 64, 64)
Donc ma question c'est cela est il normal ?

Re: Utilisation d'icon intégré

Posté : mar. 02 août 2016 00:22
par ultimateheadcenter
Tu as oublié fileinstall ^^ non ?

Re: Utilisation d'icon intégré

Posté : mar. 02 août 2016 00:39
par liberodark
Oui file install je ne l'utilise pas non plus mais c'est vrai je les oublié ^^

Re: Utilisation d'icon intégré  

Posté : mar. 02 août 2016 01:34
par orax
Soit tu utilises FileInstall, soit tu ajoutes les fichiers .ico dans les ressources de l'exécutable (avec #AutoIt3Wrapper_Res_Icon_Add).
Je te renvoie à ce que t'avait dit Tlem à ce sujet => viewtopic.php?p=98597#p98597


steam.ico est déjà intégré dans l'exécutable donc la ligne #AutoIt3Wrapper_Res_Icon_Add=steam.ico n'est pas nécessaire. La ligne est à supprimer.

GUISetIcon("steam.ico", -58, $hMainGUI)
[...]
GUICtrlCreateIcon("steam.ico", -131, 8, 8, 32, 32)
-58, -131 ? Je ne comprends d'où proviennent ces nombres.
Si ResNumber n'est pas spécifié, la numérotation commence à 201.
documentation SciTE4AutoIt a écrit :#AutoIt3Wrapper_Res_Icon_Add= ; Filename[,ResNumber[,LanguageCode]] of ICO to be added.
; Add extra ICO files to the resources
; Use full path of the ico files to be added
; ResNumber is a numeric value used to access the icon: TraySetIcon(@ScriptFullPath, ResNumber)
; If no ResNumber is specified, the added icons are numbered from 201 up

Ce n'est peut-être pas nécessaire d'utiliser ResourceEx.au3 dans ce cas. Ce script affiche 1.ico et 2.ico.
#AutoIt3Wrapper_Icon=1.ico
#AutoIt3Wrapper_Res_Icon_Add=2.ico

#include <GUIConstantsEx.au3>

Example()

Func Example()
    GUICreate("", 250, 250)

    GUICtrlCreateIcon(@ScriptFullPath, -1, 20, 40, 32, 32)  ; 1.ico
    GUICtrlCreateIcon(@ScriptFullPath, 201, 50, 40, 32, 32) ; 2.ico
    GUISetState()

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
        EndSwitch
    WEnd

    GUIDelete()
EndFunc   ;==>Example

Re: Utilisation d'icon intégré

Posté : mar. 02 août 2016 01:50
par liberodark
Merci pour ton aide mais ton script ne fonctionne pas il affiche pas d'icone est il incomplet ?

Cordialement

Re: Utilisation d'icon intégré

Posté : mar. 02 août 2016 01:55
par liberodark
Voilà ce que j'ai réussi à faire mais une fois compilé cela n'affiche pas les icons.
J'ai aussi corrigé mon erreur de doublons en supprimant la ligne en trop

Cordialement
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=1.ico
#AutoIt3Wrapper_Res_Icon_Add=1.ico
#AutoIt3Wrapper_Res_Icon_Add=2.ico
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <GUIConstantsEx.au3>

Example()

Func Example()
    GUICreate("", 250, 250)

    GUICtrlCreateIcon("1.ico", @ScriptFullPath, -1, 20, 40, 32, 32)  ; 1.ico
    GUICtrlCreateIcon("2.ico", @ScriptFullPath, 201, 50, 40, 32, 32) ; 2.ico
    GUISetState()

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
        EndSwitch
    WEnd

    GUIDelete()
EndFunc   ;==>Example

Re: Utilisation d'icon intégré

Posté : mar. 02 août 2016 02:04
par liberodark
Cette ligne est celle qui fonctionne sans ico après compilation :
GUISetIcon("icons\steam.ico", -58, $hMainGUI)
Si vous avez des idées ? sinon je vais devoir me re pencher sur des UDF.

Re: Utilisation d'icon intégré

Posté : mar. 02 août 2016 02:25
par liberodark
Merci beaucoup orax j'ai mieux saisie mon erreur ^^