[R] Plus d'icones ni de version à la compilation ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

[R] Plus d'icones ni de version à la compilation ?

#1

Message par Laddy »

Bonjour à tous,
Me voila avec un soucis et je ne trouve pas ce qui cloche.
Si j'execute mon script au3 les icones et le numéro de versions apparaissent
si je complite mon script , et que je l'execute plus d'icones ni de version lus
La différence et que pour la compilation je décompresse les executables dans @TempDir.

Quelqu'un pourrait il me dire pourquoi çA ne fonctionne pas ?
► Afficher le textemon code
► Afficher le textecaptures d'ecran
Sources : http://www.box.com/s/m7j6fjhlhj350n9h0a6p

J'ai beau relire et relire le code je ne comrpend pas d'où ça vient
purriez vous m'expliquer ?
merci
Bonne journée
Laddy
Modifié en dernier par Laddy le mar. 21 févr. 2012 12:54, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#2

Message par mikell »

Je vois pas mais c'est normal, moi je l'aurais plutôt fait comme ça :
(si on est sûr que _FileListToArray3 renvoie bien pour $Files[$i] le path complet)

Code : Tout sélectionner

Local $Files = _FileListToArray3($Path, "*.exe", 1, 0, 0, "GAO.exe") ; liste les exe contenu dans le dossier execpté GAO.exe
For $i = 1 To $Files[0]
    GUICtrlCreateListViewItem("|$Files[$i] |FileGetVersion($Files[$i])", $lview)  ; 3 colonnes
    GUICtrlSetImage(-1, $Files[$i], -1)   ; affiche l image dans la colonne 0
Next
Mais bien sûr j'ai pas pu tester...
Mettre des variables en Local en dehors de fonctions est assez strange ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#3

Message par Laddy »

Re,
mikell qu'est ce qui est normal ?
ton code ne fonctionne pas.

FileListToArray3 liste le contenu du dossier ou se trouve le script au3

Code : Tout sélectionner

$Path = @ScriptDir
Local $Files = _FileListToArray3($Path, "*.exe", 1, 0, 0, "GAO.exe")
 
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#4

Message par mikell »

Désolé, je voulais dire "c'est normal que je ne voie pas" parce que j'évite en général d'utiliser toutes ces fonctions compliquées et lourdes, pour les listviews je fais plutôt comme dans cet exemple (qui marche, cette fois)
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#5

Message par Laddy »

Oui mais dans ton exemple. Tu le fais sur un fichier exe (ou deux en création directement et le path entier apparait, ce que je ne souhaite pas)
donc je devrais repliquer le code pour tous les exe contenus dans mon dossier...
Le mien liste tous les fichiers exe à partir d'un dossier c'est pour ça que j'utilise filelistarray
je n'ai pas trouvé comment faire mieux.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#6

Message par mikell »

Mais non, c'est exactement pareil (heu y avait une erreur dans mon code précédent... :oops: )

Code : Tout sélectionner

Local $Files = _FileListToArray3($Path, "*.exe", 1, 0, 0, "GAO.exe") ; liste les exe contenu dans le dossier execpté GAO.exe
For $i = 1 To $Files[0]
    GUICtrlCreateListViewItem("|" & $Files[$i] & "|" & FileGetVersion($Files[$i]), $lview)  ; 3 colonnes
    GUICtrlSetImage(-1, $Files[$i], -1)   ; affiche l image dans la colonne 0
Next
Mais il faut être sûr que $Files[$i] contient bien le chemin complet, sinon il faut dans ce code remplacer les $Files[$i] par : $path & $Files[$i]

Exemple, ce code-là fonctionne (j'utilise _FileListToArrayEx mais c'est à peu près équivalent)
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#7

Message par Laddy »

Bonsoir Mikell
j ai testé tes deux codes
sur le 1er je n ai pas réussi à le faire fonctionner avec mon script actuel
quand au second

je n ai pas d icone sur les executables qui n ont en pas. Elles ont celle du systeme par défaut....
Est il possible d y remédier ?

Image

Image
► Afficher le textemon code
Ensuite je vais voir si je peux adpater au reste du script.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#8

Message par mikell »

Si un exe n'a pas d'icone, tu n'as pas beaucoup de choix
Tu peux imposer une icone par défaut (de manière générale, ou spécialement pour ces exe en posant une condition sur leur nom) :
► Afficher le texte
Ou alors tu te tapes le 'hard work', tu FileInstalles des icones (ou tu les intègres au script) que tu attribues ensuite dans le script à ces exe

Note :

Code : Tout sélectionner

StringRegExpReplace(@ScriptDir&"\GAO", '(.+)\\[^\\]+', "$1\\")  [size=150][b]=[/b][/size]  @ScriptDir & "\"
Ce regexp sert quand tu as un chemin complet (path\fichier) à récupérer juste le path en enlevant le nom du fichier
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#9

Message par Laddy »

Je crois que j'ai un soucis avec le path maintenant
faut que je refasse des tests, parce qu'à la compilation j'obtiens jamais ce que je veux, il me liste le contenu du bureau et non le contenu du répertoire indiqué

ça me prend la tête, vite un mur.... :cry:
Je pense que le $path n'est pas juste...
Je regasrde à nouveau à midi, ces soucis de chemins me prennent trop la tête.

Merci Mikell pour l'ajout de l icone systeme, c'est mieux de prendre directe celle du pc

Code : Tout sélectionner

DirCreate(@DesktopDir & "\GAOtmp\")
FileInstall("C:\Users\Cari\Desktop\GAO\avastclear.exe", @DesktopDir & "\GAOtmp\avastclear.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\avgremover.exe", @DesktopDir & "\GAOtmp\avgremover.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\avgremoverx64.exe", @DesktopDir & "\GAOtmp\avgremoverx64.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\avira_registry_cleaner_en.exe", @DesktopDir & "\GAOtmp\avira_registry_cleaner_en.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\cleanwipe.exe", @DesktopDir & "\GAOtmp\cleanwipe.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\esetuninstaller.exe", @DesktopDir & "\GAOtmp\esetuninstaller.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\kavremover.exe", @DesktopDir & "\GAOtmp\kavremover.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\mcafeecleanuptool.exe", @DesktopDir & "\GAOtmp\mcafeecleanuptool.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\normanviruscontrolclean.exe", @DesktopDir & "\GAOtmp\normanviruscontrolclean.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\nortonremovaltool.exe", @DesktopDir & "\GAOtmp\nortonremovaltool.exe")
FileInstall("C:\Users\Cari\Desktop\GAO\pandauninstaller.exe", @DesktopDir & "\GAOtmp\pandauninstaller.exe")
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=ICO\uninstall.ico
#AutoIt3Wrapper_outfile=GAO.exe
#AutoIt3Wrapper_Res_File_Add=C:\Users\Cari\Desktop\GAO\uninstall.jpg, rt_rcdata, LOGO
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <_FileListToArrayEx.au3>
#include <ListviewConstants.au3>

$path = StringRegExpReplace(@DesktopDir & "\GAOtmp\" , '(.+)\\[^\\]+', "$1\\")  ;
$Files = _FileListToArrayEx($path, "*.exe", 1)

GUICreate("listview items", 420, 150, 100, 200, -1)
$lview = GUICtrlCreateListView("|Désinstalleur|Version ", 10, 10, 400, 130)
GUICtrlSendMsg($lview, $LVM_SETCOLUMNWIDTH, 1, 280)

For $i = 1 To $Files[0]
    GUICtrlCreateListViewItem("|" & $Files[$i] & "|" & FileGetVersion($path & $Files[$i]), $lview)  ; 3 colonnes
If NOT GUICtrlSetImage(-1, $path & $Files[$i], -1) Then  ; <== là c'est général
    GUICtrlSetImage(-1, @SystemDir & "\shell32.dll", -166)   
EndIf
Next
GUISetState()

While 1
   $msg = GUIGetMsg()
If $msg = -3 Then Exit
Wend
 
Modifié en dernier par Laddy le mar. 21 févr. 2012 08:44, modifié 3 fois.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#10

Message par TopXm »

Hello :)

Laddy, sympa ton tool ;)

Tu peux poster ton code à jour. Je viens de récupérer deux "washers", en l'occurrence ceux d'Eset et de Symantec, du coup en arrangeant le source je vais pouvoir tester l'EXE.
Tu n'auras plus qu'à détecter les Av installés et ne proposer que les "washers" qui vont bien ;)
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#11

Message par Laddy »

Lut TopXm,
le dernier code est celui fourni dans mon 1er sujet, pour le moment j'essaie de résoudre mon problème d'icone et version avec le code de mikell.
Mon 1er code est fonctionnel.
Les sources sont disponibles dans le lien du box.com posté.
Si tu télécharges l'exe compilé tu peux récupérer tous les exe dans le dossier temp.

Est ce qu'un washers ?
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#12

Message par TopXm »

Oki je te dis si ça le fait chez moi aussi ;)
Laddy a écrit :Est ce qu'un washers ?
Encore un terme qui sort de mon petit cerveau, c'est pour laver / supprimer les éventuels restes.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#13

Message par TopXm »

Re,

Laddy, c'est normal que ça ne fonctionne pas, le _FileListToArray3 te renvoie la liste des EXE sans le chemin complet du coup derrière
ton AddIconByFileName tu le passes sans le chemin donc ça ne fonctionne pas. Pareille pour le FileGetVersion

Essais ceci à la place :

Code : Tout sélectionner

Local $Files = _FileListToArray3($Path, "*.exe", 1, 0, 0, "GAO.exe") ; liste les exe contenu dans le dossier execpté GAO.exe
For $i = 1 To $Files[0]
    Local $image = AddIconByFileName($hImages, $Path &  $Files[$i]) ; ajoute l image via la fonction
    Local $item = _GUICtrlListView_AddItem($lview, $Files[$i], $image, 0) ; affiche l image dans la colonne 0
    Local $item2 = _GUICtrlListView_AddSubItem($lview, $item, FileGetVersion($Path  & $Files[$i]), 1) ; affiche le num de version dans la colonne 1
Next
[EDIT]Sinon, y'a même mieux, tu dois pouvoir récupérer le chemin en entier d'après ce qui est dit ici : http://www.autoitscript.fr/forum/viewto ... 442#p16442

[EDIT 2]Oups même si ça fonctionne, je n'avais pas vu le Slash dans le chemin de $Path donc j'ai corrigé, c'est plus propre ainsi :)
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#14

Message par Laddy »

Je teste à midi sur le bon pc et je vous redis.
Merci d'avoir jeté un oeil.
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Plus d'icones ni de version à la compilation ?

#15

Message par Laddy »

Ah ça a l'air d'être ok maintenant :D

Je met en résolu bien que la technique de mikell m'intéresse pour remplacer l'autre.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Plus d'icones ni de version à la compilation ?

#16

Message par mikell »

Dire que j'avais écrit ça dans le tout premier post ...
mikell a écrit :(si on est sûr que _FileListToArray3 renvoie bien pour $Files[$i] le path complet)
et dans le troisième...
mikell a écrit :Mais il faut être sûr que $Files[$i] contient bien le chemin complet, sinon il faut dans ce code remplacer les $Files[$i] par : $path & $Files[$i]
Ahh la la ..... Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [R] Plus d'icones ni de version à la compilation ?

#17

Message par Laddy »

Ouep , et j ai répondu que les exe, lol. Enfin tout est bien qui finit bien :D
Répondre