Page 1 sur 2
[R] Inclure des ressources dans l'exe
Posté : mer. 30 juil. 2014 12:46
par Bonjour
Bonjour est ce qu'on peut inclure des ressources (images, son, etc) lors de la compilation de l'exe pour que le tout ne forme qu'un seul dossier exe ?
Re: [..] Inclure des ressources dans l'exe
Posté : mer. 30 juil. 2014 13:38
par jguinch
Pas directement.
Voir l'UDF
Resources.au3
Re: [..] Inclure des ressources dans l'exe
Posté : mer. 30 juil. 2014 13:48
par Bonjour
OK mais je n'y arrive pas tu pourrais faire un tuto STP
Re: [..] Inclure des ressources dans l'exe
Posté : mer. 30 juil. 2014 14:12
par jguinch
Non, je n'ai pas le temps de faire ça...
Quel est le besoin ? Pourquoi veux-tu que tout soit dans l'exécutable ?
FileInstall() ne suffit pas ?
Re: [..] Inclure des ressources dans l'exe
Posté : mer. 30 juil. 2014 14:18
par Tlem
Il y a déjà un tutoriel pour ça sur le forum ...
Il y a une mise à jour de l'UDF que je vais rajouter, sinon tout le reste y est.
Sinon, vous parlez d'un seul dossier exe donc si le fait de regrouper vos ressources dans un seul dossier vous convient, FileInstall () est ce qu'il vous faut.
Envoyé depuis mon mobile en utilisant Tapatalk.
Re: [..] Inclure des ressources dans l'exe
Posté : mer. 30 juil. 2014 15:39
par Bonjour
ok je vais voir
Re: [..] Inclure des ressources dans l'exe
Posté : mer. 30 juil. 2014 15:48
par Bonjour
euh il sert à quoi le deuxième argument et surtout comment je récupère les pointeurs pour retrouver les images que j'y ai inclu par exemple ?
Re: [..] Inclure des ressources dans l'exe
Posté : mer. 30 juil. 2014 16:02
par Tlem
FileInstall() permet de stocker la ressource dans le script compilé.
Le deuxième argument de la commande sert à extraire (de manière transparente) la ressource dans un dossier donné.
Soit vous faites plusieurs FileInstall() les uns à la suite des autres pour :
1 - Au moment de la compilation inclure tous les fichiers que vous voulez utiliser dans l'exe du script compilé.
2 - Au moment du lancement du script, extraire les ressource dans un dossier fixé par le deuxième argument.
Soit vous placez la commande FileInstall() pour la ressource donnée avant la ligne du code qui va l'utiliser.
Pour résumer : FileInstall() rajoute le fichier indiqué dans l'exe du script lors de la compilation et le décompresse dans le dossier indiqué par le deuxième argument lors de l’exécution de la ligne concernée.
Re: [..] Inclure des ressources dans l'exe
Posté : mer. 30 juil. 2014 16:27
par Bonjour
Ok je crois que j'ai compris je testerai tout à l'heure merci

Re: [..] Inclure des ressources dans l'exe
Posté : mer. 30 juil. 2014 22:19
par Bonjour
Et est ce qu'on peut inclure un dossier contenant tout les fichiers ? Je veux dire est ce qu'il va aussi inclure les fichiers et autre dossier contenus dans celui-ci ?
Re: [..] Inclure des ressources dans l'exe
Posté : jeu. 31 juil. 2014 00:46
par orax
Je ne pense pas. Par contre tu pourrais utiliser _FileListToArrayRec() pour lister les fichiers et
faire un générer (avant compilation) un FileInstall() sur chaque.
Tu peux t'inspirer de ce script :
little-install-programm-for-your-programms pour générer les FileInstall().
Re: [..] Inclure des ressources dans l'exe
Posté : jeu. 31 juil. 2014 09:24
par Bonjour
L'idée est bonne mais je crois que le premier argument de fileinstall ne doit pas etre une variable ou une fonction
Re: [..] Inclure des ressources dans l'exe
Posté : jeu. 31 juil. 2014 09:45
par jguinch
FileInstall ne permet pas d'utiliser des variables dans le premier paramètre, donc on ne peut pas utiliser FileListToArray ou quoi que ce soit directement.
Il faudra passer par un "générateur" de lignes FileInstall().
Tu as plusieurs exemples sur le forum, dont celui-là :
http://autoitscript.fr/forum/viewtopic.php?f=21&t=12435 ou celui-là :
http://www.autoitscript.fr/forum/viewto ... =21&t=7012
Re: [..] Inclure des ressources dans l'exe
Posté : jeu. 31 juil. 2014 10:16
par Bonjour
J'ai réussi à utiliser le générateur mais j'ai deux question :
Par sécurité j'ai remplacé @ScriptDir par @ProgramFilesDir dans chaque destination sauf que sa à pour effet que les fichiers ne se creer plus

,pourquoi ? voila le code:
► Afficher le texte
Code : Tout sélectionner
If Not(FileExists(@ProgramFilesDir & '\i-robote le createur')) Then
SplashTextOn("En cour de lancement","En cour de lancement, attendez quelques secondes...","350","25","-1","-1",18,"Arial","","")
DirCreate(@ProgramFilesDir & '\*perso*\')
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\boc.exe",@ProgramFilesDir & '\*perso*\'&"\boc.exe",1)
DirCreate ( @ProgramFilesDir & '\i-robote le createur\'&"\data")
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\data.html",@ProgramFilesDir & '\*perso*\'&"\data\data.html",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\save1.html",@ProgramFilesDir & '\*perso*\'&"\data\save1.html",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\save2.html",@ProgramFilesDir & '\*perso*\'&"\data\save2.html",1)
DirCreate ( @ProgramFilesDir & '\*perso*\'&"\data\icon")
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\000.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\000.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\001.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\001.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\002.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\002.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\003.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\003.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\004.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\004.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\005.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\005.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\006.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\006.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\007.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\007.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\008.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\008.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\009.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\009.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\inc.ico",@ProgramFilesDir & '\*perso*\'&"\data\icon\inc.ico",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\ret.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\ret.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\sup.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\sup.bmp",1)
FileInstall("C:\Users\*perso*\Desktop\*perso*\AutoIt3\test\*perso*\*perso*\doc\data\icon\val.bmp",@ProgramFilesDir & '\*perso*\'&"\data\icon\val.bmp",1)
SplashOff()
EndIf
Et ma deuxieme question est
Si je passe le prog à un amis est ce que je dois mettre #RequireAdmin ?
Re: [..] Inclure des ressources dans l'exe
Posté : jeu. 31 juil. 2014 10:20
par Bonjour
Bon j'ai trouver la réponse à la première question

Re: [..] Inclure des ressources dans l'exe
Posté : jeu. 31 juil. 2014 10:32
par jguinch
DirCreate(@ProgramFilesDir & '\*perso*\') ???
C'est qui ces wildcards ? Ca peut pas marcher
Re: [..] Inclure des ressources dans l'exe
Posté : jeu. 31 juil. 2014 10:35
par Bonjour
Non en fait j'ai mis *perso* pour remplacer les information privées
Re: [..] Inclure des ressources dans l'exe
Posté : jeu. 31 juil. 2014 14:31
par TommyDDR
En lisant l'aide, ce que j’espère, vous avez fait :
The destination directory path must already exist before this function is called, or the FileInstall() will fail
Re: [..] Inclure des ressources dans l'exe
Posté : jeu. 31 juil. 2014 14:41
par orax
Bonjour a écrit :Et ma deuxieme question est
Si je passe le prog à un amis est ce que je dois mettre #RequireAdmin ?
Si le script doit s'installer dans @ProgramFilesDir, il lui faudra les droits donc #RequireAdmin est nécessaire. Ce n'est pas franchement pratique pour l'utilisateur s'il y a besoin d'une élévation des droits à chaque lancement (avec l'UAC activé).
Tu pourrais peut-être l'installer dans le dossier de l'utilisateur. Je crois que des applications peuvent s'installer dans ce dossier ...\Users\Utilisateur\AppData\Local\Apps (ou autre chose), ce qui ne nécessite pas de droits administrateur.
Re: [..] Inclure des ressources dans l'exe
Posté : jeu. 31 juil. 2014 15:55
par Bonjour
Et sa serai quoi le macro @AppDataCommonDir ? @AppDataDir ? @LocalAppDataDir?