[R] Compiler automatiquement un .au3

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

[R] Compiler automatiquement un .au3

#1

Message 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 !
Modifié en dernier par tolf le mer. 20 févr. 2008 12:22, modifié 1 fois.
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
Avatar du membre
Vins83
Membre émérite
Membre émérite
Messages : 220
Enregistré le : mer. 25 juil. 2007 17:43
Status : Hors ligne

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

#2

Message par Vins83 »

En fesant un clic droit sur le fichier et compile script...

Je vois pas autre chose.
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

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

#3

Message 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
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

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

#4

Message 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+
A+
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

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

#5

Message 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 !
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
SurPriseS
Niveau 6
Niveau 6
Messages : 291
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

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

#6

Message 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 ?
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

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

#7

Message 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+
A+
Avatar du membre
arrkhan
Niveau 8
Niveau 8
Messages : 528
Enregistré le : sam. 17 nov. 2007 03:30
Status : Hors ligne

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

#8

Message par arrkhan »

ce serait peut etre plus simple avec un

Code : Tout sélectionner

run(@comscript '/c start' & $Path_de_ton_exe & " <tes parametres>"
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

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

#9

Message 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 ?
A+
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

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

#10

Message 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).
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
Avatar du membre
arrkhan
Niveau 8
Niveau 8
Messages : 528
Enregistré le : sam. 17 nov. 2007 03:30
Status : Hors ligne

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

#11

Message 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
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

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

#12

Message 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.
A+
Avatar du membre
eln
Niveau 6
Niveau 6
Messages : 202
Enregistré le : sam. 28 juil. 2007 12:54
Status : Hors ligne

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

#13

Message par eln »

Bonjour

Je pense qu'il faut lire "@ComSpec" à la place de "@comscript".
Débutant, pas taper !
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

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

#14

Message 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)
A+
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

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

#15

Message 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)
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

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

#16

Message 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 ....
A+
Répondre