Page 1 sur 1

[R] Compiler automatiquement un .au3

Posté : ven. 15 févr. 2008 12:57
par tolf
Bonjour,

j'aimerais compiler automatiquement un fichier autoit mais je ne connais aucune fonction qui puisse le faire.
Existe-t-il une fonction d'AutoIt ou un UDF ou n'importe quel autre moyen dérivé pour le faire ?

Merci de votre aide !

Re: [...] Compiler automatiquement un .au3

Posté : ven. 15 févr. 2008 14:40
par Vins83
En fesant un clic droit sur le fichier et compile script...

Je vois pas autre chose.

Re: [...] Compiler automatiquement un .au3

Posté : sam. 16 févr. 2008 14:00
par tolf
Petite précision sur mon script :

J'ai un script AutoIt A1.
Je veux le copier en plusieurs exemplaires et changer à chaque fois la valeur d'une variable V.
J'obtiens ainsi des scripts A2, A3, ... légèrement différents.
Je veux les utiliser en même temps donc je suis obligé de les compiler (la touche F5 de SciTE ne peut marcher que pour 1 seul script à la fois).

Au lieu de faire tout cela à la main, j'ai créé un script B qui permet déjà de copier les fichiers et de modifier la variable, et j'aimerais qu'il puisse aussi compiler les scripts A2, A3, ...

voici un aperçu de mon script B :

Code : Tout sélectionner

#include <File.au3>

$ligne = 6

For $script = 2 To 5
    FileCopy(@ScriptDir & "\fichierA1.au3", @ScriptDir & "\fichierA" & $script & ".au3", 1)
    _FileWriteToLine(@ScriptDir & "\fichierA" & $script & ".au3", $ligne, "$variableV = " & $script, 1) ; change la valeur de la variable V
Next

Re: [...] Compiler automatiquement un .au3

Posté : sam. 16 févr. 2008 16:05
par moutelous
Bonjour,

Pourquoi ne pas utiliser simplement l'utilitaire AUT2EXE.exe (c'est d'ailleurs lui qui est utilisé par appel de la touche F7 de Scite) en ligne de commande ....

Aut2exe.exe /in <infile.au3> [/out <outfile.exe>] [/icon <iconfile.ico>] [/nodecompile] [/comp 0-4] [/pass <passphrase>] [/nopack] [/ansi] [/unicode]

et inclure cette commande dans ta boucle ?

A+

Re: [...] Compiler automatiquement un .au3

Posté : sam. 16 févr. 2008 20:25
par tolf
moutelous a écrit :Pourquoi ne pas utiliser simplement l'utilitaire AUT2EXE.exe (c'est d'ailleurs lui qui est utilisé par appel de la touche F7 de Scite) en ligne de commande ....
Excusez-moi mais pourriez vous me donner plus de précision sur ce qu'est une ligne de commande et comment on l'utilise SVP ?

moutelous a écrit :

Code : Tout sélectionner

Aut2exe.exe /in <infile.au3> [/out <outfile.exe>] [/icon <iconfile.ico>] [/nodecompile] [/comp 0-4] [/pass <passphrase>] [/nopack] [/ansi] [/unicode]
Quand j'écris cette ligne dans autoit, il me répond qu'il y a une erreur de syntaxe, mais quelle est la bonne syntaxe ?

Merci de votre aide !

Re: [...] Compiler automatiquement un .au3

Posté : sam. 16 févr. 2008 20:41
par SurPriseS
tolf a écrit :
moutelous a écrit :Pourquoi ne pas utiliser simplement l'utilitaire AUT2EXE.exe (c'est d'ailleurs lui qui est utilisé par appel de la touche F7 de Scite) en ligne de commande ....
Excusez-moi mais pourriez vous me donner plus de précision sur ce qu'est une ligne de commande et comment on l'utilise SVP ?

moutelous a écrit :[autoit]Aut2exe.exe /in <infile.au3> [/out <outfile.exe>] [/icon <iconfile.ico>] [/nodecompile] [/comp 0-4] [/pass <passphrase>] [/nopack] [/ansi] [/unicode][/autoit]
Quand j'écris cette ligne dans autoit, il me répond qu'il y a une erreur de syntaxe, mais quelle est la bonne syntaxe ?

Merci de votre aide !
Si tu utilise la ligne de commande comme sa, c'est logique que de ça ne fonctionne pas...
maintenant je vois pas comment expliqué le principe d'une ligne de commande :`|

bref :
Aut2exe.exe : le logiciel a lancé
/in <infile.au3> : le au3 a compilé
tout le reste n'ai qu'options
rapidement :
/out <outfile.exe> : fichier de sortie
/pass <passphrase> : mot de passe
/nodecompile : pas de décompilation

après tu peut lancé sa avec un run/runwait (je sais qu'il y'a une commande exprès mais je m'en souvient plus :oops: )

Sinon pourquoi ne pas utiliser un ini par exemple pour changer les valeurs de ta variable ?

Re: [...] Compiler automatiquement un .au3

Posté : sam. 16 févr. 2008 21:24
par moutelous
OK,

De nombreux logiciels ou utilitaires ont deux modes de fonctionnement, un graphique (c'est celui que nous utilisons habituellement) et l'autre en ligne de commande (une commande que l'on écrit dans un shell de commande du type DOS par exemple)

Ainsi, l'utilitaire AUT2EXE.exe (qui permet de compiler les scripts au3 en exécutable) peut également être appelé en ligne de commande et donc au travers d'un script.

La ligne de commande que j'avais communiqué auparavant n'était que la syntaxe de la commande, il faut en fait inclure la commande suivante dans votre code :

Code : Tout sélectionner

RunWait("d:\Program Files\AutoIt3\aut2exe\aut2exe.exe  /in ""D:\Program Files\AutoIt3\Examples\test3.au3"" /out ""D:\Program Files\AutoIt3\Examples\test3.exe"" /comp 2 /nopack /Unicode")
 
ATTENTION :

- à la place de "d:\Program Files\AutoIt3\aut2exe\aut2exe.exe" il faut indiquer le chemin de l'exécutable aut2exe.exe sur votre ordinateur
- à la place de "D:\Program Files\AutoIt3\Examples\test3.au3" il faut indiquer le chemin de votre fichier à compiler
- à la place de D:\Program Files\AutoIt3\Examples\test3.exe il faut indiquer le nom et le chemin où voulez que soit enregistré l'exécutable.
- les doubles guillemets dans la commande sont nécessaires.

J'espère avoir été clair ....

A+

Re: [...] Compiler automatiquement un .au3

Posté : dim. 17 févr. 2008 02:50
par arrkhan
ce serait peut etre plus simple avec un

Code : Tout sélectionner

run(@comscript '/c start' & $Path_de_ton_exe & " <tes parametres>"

Re: [...] Compiler automatiquement un .au3

Posté : dim. 17 févr. 2008 18:39
par moutelous
Bonjour,

Excuses moi de mon ignorance arrkhan mais je ne connais pas la macro "@comscript" et je ne trouve aucune aide associée à celle-ci ...
Peux-tu m'en dire plus ?

Re: [...] Compiler automatiquement un .au3

Posté : dim. 17 févr. 2008 19:13
par tolf
Bonsoir moutelous,

Pourrais tu aussi m'expliquer à quoi correspondent les options "nodecompile", "comp" et "nopack" histoire de savoir les utiliser le jour où ce sera nécessaire STP ?

Autre question : si mon nom de fichier est une variable, comment dois-je procéder ? Si je tape ceci, ça ne marche pas :

Code : Tout sélectionner

RunWait("C:\Program Files\AutoIt3\Aut2Exe\Aut2exe.exe  /in "$nom_fichier & ".au3"" /out "$nom_fichier & ".exe"" /comp 2 /nopack /Unicode")
il y a apparemment une erreur de syntaxe au niveau des doubles-guillemets je les ai transformés en simple-guillemets, étant donné que la variable n'est pas un string (donc a priori, elle n'est pas entourée de guillemets).

Re: [...] Compiler automatiquement un .au3

Posté : dim. 17 févr. 2008 19:29
par arrkhan
cette commande permet de lancer l'invite de commande windows que tu trouve aussi en faisant menu demarrer/executer, lance une commande suivi de ses parametres et execute la-dite commande, sachant que je devais etre fatigue hier, il manque la moitie des infos dans l'exemple que j'ai donne ^^, mais sinon vas voir l'aide d autoit et cherche à RUN

Re: [...] Compiler automatiquement un .au3

Posté : lun. 18 févr. 2008 12:48
par moutelous
Bonjour,

En effet Arrkhan, tu dois vraiment être fatigué car tu ne réponds pas à la question qui portais sur la macro "@comscript" que tu donnais en solution du problème de Tolf et tu me conseilles d'aller jeté un oeil sur la méthode RUN ....??? Comprends pas ta logique.

Re: [...] Compiler automatiquement un .au3

Posté : lun. 18 févr. 2008 14:00
par eln
Bonjour

Je pense qu'il faut lire "@ComSpec" à la place de "@comscript".

Re: [...] Compiler automatiquement un .au3

Posté : lun. 18 févr. 2008 17:25
par moutelous
bonjour tolf,

Une commande qui devrait fonctionner :

Code : Tout sélectionner

RunWait("C:\Program Files\AutoIt3\Aut2Exe\Aut2exe.exe  /in """$nom_fichier & ".au3"" /out """$nom_fichier & ".exe"" /comp 2 /nopack /Unicode")
 
A condition que ta variable inclus le chemin complet de ton fichier

Concernant les options :
- nodecompile : option de protection du fichier
- comp : méthode de compression de 1 à 4 (voir les options proposées dans le menu de aut2exe graphique)
- nopack : active l'option UPX Compress (voir les options proposées dans le menu de aut2exe graphique)

Re: [...] Compiler automatiquement un .au3

Posté : lun. 18 févr. 2008 20:39
par tolf
J'ai essayé plusieurs syntaxes possibles incluant une variable comme nom de fichier et la bonne est la suivante :

Code : Tout sélectionner

RunWait("C:\Program Files\AutoIt3\Aut2Exe\Aut2exe.exe  /in """ & $nom_fichier & ".au3"" /out """ & $nom_fichier & ".exe"" /comp 2 /nopack /Unicode")
Petite explication pour les triples-guillemets : le premier ferme l'argument concernant le chemin de l'application "Aut2Exe", le deuxième ouvre l'argument pour le chemin du script et le troisième ferme le string, puisque le chemin du fichier commence par une variable (d'où le "&", qui fait la liaison entre le string vide et la variable)

Re: [...] Compiler automatiquement un .au3

Posté : lun. 18 févr. 2008 21:55
par moutelous
tolf a écrit :J'ai essayé plusieurs syntaxes possibles incluant une varible comme nom de fichier et la bonne est la suivante :

Code : Tout sélectionner

RunWait("C:\Program Files\AutoIt3\Aut2Exe\Aut2exe.exe  /in """ & $nom_fichier & ".au3"" /out """ & $nom_fichier & ".exe"" /comp 2 /nopack /Unicode")
Petite explication pour les triples-guillemets : le premier ferme l'argument concernant le chemin de l'application "Aut2Exe", le deuxième ouvre l'argument pour le chemin du script et le troisième ferme le string, puisque le chemin du fichier commence par une variable (d'où le "&", qui fait la liaison entre le srting vide et la variable)
Oui, mille excuses un copier/coller malheureux et voilà que l'éperluette disparait ....