[Applescript] Plusieurs fichiers pour un script

eNeos

Membre actif
27 Mai 2008
306
18
Versailles / Montreux
Bonjour,

Je découvre depuis quelques jours Applescript et me pose une question existentielle... Est-il possible d'avoir un script composé de plusieurs fichiers ?

J'ai bien trouvé l'option d'enregistrement au format "Paquet de scripts" mais ne sais comment l'utiliser et n'ai pas trouvé de doc à ce sujet :(
 

ceslinstinct

Membre expert
Club MacG
10 Août 2004
2 070
111
22
Bonjour,

Je découvre depuis quelques jours Applescript et me pose une question existentielle... Est-il possible d'avoir un script composé de plusieurs fichiers ?

J'ai bien trouvé l'option d'enregistrement au format "Paquet de scripts" mais ne sais comment l'utiliser et n'ai pas trouvé de doc à ce sujet :(
Bonjour

Avec AppleScript, je me suis créé une application qui en réalité sont 3 applications différentes.

La première (visible) commande la deuxième (invisible) qui elle commande la troisième qui elle aussi est invisible.

Elle travaillent à tour de rôle suivant la demande (mais qu'une à la fois) et en une seule application.

@+
 

eNeos

Membre actif
27 Mai 2008
306
18
Versailles / Montreux
Bonjour ceslinstinct,

Effectivement, c'est une idée pas bête du tout, bien que pas pratique dans mon cas.
J'ai trouvé un pis-aller qui consiste à enregistrer le fichier principal en une application monApp.app. Je vais, à la main, placer mon ou mes add-on.scpt dans monApp.app/Contents/Resources/Scripts/.

Pour le code, ça donne :

monApp.app
Bloc de code:
on run {}
	set scptPath to ((path to me) as string) & "Contents:Resources:Scripts:"
	set scptFichier to scptPath & "add-on.scpt"
	set scptAddOn to load script scptFichier as alias
	
	set valeur to "On m'dit rien !"
	set valeur to testEconomiseurEcran() of scptAddOn
	
	return valeur
end run

add-on.scpt
Bloc de code:
on testEconomiseurEcran()
	set sleeping to "\"CurrentPowerState\"=1"
	set awake to "\"CurrentPowerState\"=4"
	
	set reponse to do shell script "ioreg -n IODisplayWrangler |grep -i IOPowerManagement"
	if reponse contains awake then
		set resultat to "J'suis en pleine forme"
	else if reponse contains sleeping then
		set resultat to "Tais toi, je dors"
	else
		set resultat to "Devine quoi ? Il y a d'autres cas !"
	end if
	
	return resultat
end testEconomiseurEcran

Maintenant, il y a surement mieux... mais je ne connais pas.
 
A

Anonyme

Invité
Bonsoir,

Bonjour,
J'ai bien trouvé l'option d'enregistrement au format "Paquet de scripts" mais ne sais comment l'utiliser et n'ai pas trouvé de doc à ce sujet :(
Si tu enregistres ton script au format "Paquet de scripts"
Clic sur l'icône "Contenu du paquet" dans la barre d'outils de l'éditeur.
À partir du Finder, ajoutent les scripts désirés dans le dossier "Scripts" de l'éditeur, ils seront copiés, pas déplacés.

Après il suffit de les éditer par double-clic à partir de l'éditeur.

La syntaxe sera par exemple :
Bloc de code:
on run {}
	set scptAddOn to load script (path to resource "add-on.scpt" in directory "Scripts")
	return testEconomiseurEcran() of scptAddOn
end run
C'est la même syntaxe pour une application