Applecript : message d'erreur

Danheux

Membre confirmé
8 Août 2004
77
1
90
Bonjour,

En voulant exécuter ce scirpt sous sa forme compilée je récolte un message d'erreur. Quelque gentil contributeur pourrait-il me dire ce qu'il signifie ?
Plus généralement : existe-t-il un fichier des messages d'erreur ?

tell application "Finder"

open folder "systeme & autres:utilisateurs:danheux:bibliothèque:classic:preferences"

script pause
on delay
continue delay 5
end delay
end script
tell pause to delay

close folder "systeme & autres:utilisateurs:danheux:bibliothèque:classic:preferences"
end tell

A noter que le script non compilé ne génère pas d'erreur.

Merci
 
Bonjour,

Plus généralement : existe-t-il un fichier des messages d'erreur ?
Merci
Bonjour

Teste ce code ajouté à ton script pour voir.

Bloc de code:
[color=#0000FF]try[/color]
	
	[color=#800000]--[/color][color=#FF8000] Ton code[/color]
	[color=#0000FF]set[/color] [color=#3F7F00]x[/color] [color=#0000FF]to[/color] [color=#3F7F00]a[/color] [color=#800000]+[/color] [color=#3F7F00]b[/color] [color=#800000]--[/color][color=#FF8000] exemple[/color]
	
[color=#0000FF]on[/color] [color=#0000FF]error[/color] [color=#3F7F00]ErrorMessage[/color] [color=#0080FF]number[/color] [color=#3F7F00]ErrorNumber[/color]
	[color=#0000FF]if[/color] [color=#800000]([/color][color=#3F7F00]ErrorNumber[/color] [color=#0000FF]is[/color] -128[color=#800000])[/color] [color=#0000FF]or[/color] [color=#800000]([/color][color=#3F7F00]ErrorNumber[/color] [color=#0000FF]is[/color] -1711[color=#800000])[/color] [color=#0000FF]then[/color] [color=#800000]--[/color][color=#FF8000] rien (l'utilisateur a annulé)[/color]
	[color=#0000FF]else[/color]
		[color=#0080FF]activate[/color] [color=#0000FF]me[/color]
		[color=#0080FF]display alert[/color] [color=#800000]"[/color]Error [color=#800000]"[/color] [color=#800000]&[/color] [color=#800000]([/color][color=#3F7F00]ErrorNumber[/color] [color=#0000FF]as[/color] [color=#0080FF]text[/color][color=#800000])[/color] [color=#0080FF]message[/color] [color=#3F7F00]ErrorMessage[/color] [color=#0080FF]as[/color] [color=#0080FF]warning[/color] [color=#0080FF]buttons[/color] [color=#800000]{"[/color]OK[color=#800000]"}[/color] [color=#0080FF]default button[/color] [color=#800000]"[/color]OK[color=#800000]"[/color]
	[color=#0000FF]end[/color] [color=#0000FF]if[/color]
[color=#0000FF]end[/color] [color=#0000FF]try[/color]

Lors de tests avec la fenêtre de l'éditeur de script, sélectionne Hist. des événements pour voir où ça bloque.

@+
 
Bonjour,

Voici comment j'interprète ta proposition :


try
tell application "Finder"

open folder "systeme & autres:utilisateurs:danheux:bibliothèque:classic:preferences"

script pause
on delay
continue delay 5
end delay
end script
tell pause to delay

close folder "systeme & autres:utilisateurs:danheux:bibliothèque:classic:preferences"

end tell

-- set x to a + b : exemple ?

on error ErrorMessage number ErrorNumber

if (ErrorNumber is -128) or (ErrorNumber is -1711) then -- rien (l'utilisateur a annulé)

else
activate me
display alert "Error " & (ErrorNumber as text) message ErrorMessage as warning buttons {"OK"} default button "OK"
end if

end try

En non compilé ça marche très bien, mais en compilé j'ai un message d'erreur.

Help ! Je n'y comprends rien. !
 
Bonjour

Ton problème c'est ça:

Bloc de code:
script pause
on delay
continue delay 5
end delay
end script
tell pause to delay

C'est sensé faire quoi (une pause de 5 secondes)?

@+
 
Bonjour

Ton problème c'est ça:

Bloc de code:
script pause
on delay
continue delay 5
end delay
end script
tell pause to delay

C'est sensé faire quoi (une pause de 5 secondes)?

@+

Bonsoir,

En effet, c'est bien ça.

Faute de parvenir à interrompre le déroulement du script, je me contente -médiocrement- d'une petite pause.

Je vous dois peut-être une explication pour l'acharnement que je mets à trouver une solution à ce petit problème. C'est que, tous les matins, je me dérouille les neurones en faisant quelques parties de "Eric's Solitaire Sample" (sous Classic) en essayant de garder le temps moyen en dessous d'une certaine limite. Ca se joue sur une série de parties au bout de laquelle il faut bien réinitialiser le jeu, ce qui revient à mettre ses prefs à la poubelle, ce qui est impossible avec une instruction "delete" ou "kill" dans ce cas particulier. Aller savoir pourquoi !

Plus généralement, je trouve qu'il est agréable d'apprendre à programmer en développant des petits projets. La consultation des guides ou manuels de référence en étant ainsi bien plus agréable.

Merci encore pour votre aide.
 
Bonsoir,

En effet, c'est bien ça.
Bonsoir

Classic je n'utilise pas.

Essais ce code pour voir.

Bloc de code:
[color=#0000FF]set[/color] [color=#3F7F00]chemin[/color] [color=#0000FF]to[/color] [color=#800000]"[/color]systeme & autres:utilisateurs:danheux:bibliothèque:classic:p references[color=#800000]"[/color]
[color=#0000FF]tell[/color] [color=#0080FF]application[/color] [color=#800000]"[/color]Finder[color=#800000]"[/color] [color=#0000FF]to[/color] [color=#0080FF]move[/color] [color=#0080FF]file[/color] [color=#3F7F00]chemin[/color] [color=#0080FF]to[/color] [color=#0080FF]trash[/color]

Où alors ça:

Bloc de code:
[color=#0000FF]tell[/color] [color=#0080FF]application[/color] [color=#800000]"[/color]Finder[color=#800000]"[/color]
	
	[color=#0080FF]open[/color] [color=#0080FF]folder[/color] [color=#800000]"[/color]systeme & autres:utilisateurs:danheux:bibliothèque:classic:p references[color=#800000]"[/color]
	[color=#0080FF]delay[/color] 5
	[color=#0080FF]close[/color] [color=#0080FF]folder[/color] [color=#800000]"[/color]systeme & autres:utilisateurs:danheux:bibliothèque:classic:p references[color=#800000]"[/color]
	
[color=#0000FF]end[/color] [color=#0000FF]tell[/color]

@+
 
Dernière édition:
set chemin to "systeme & autres:utilisateurs:danheux:bibliothèque:classic:preferences"
tell application "Finder" to move file chemin to trash

Ce code effacerait le dossier "préférence" entier. Au chemin il faudrait ajouter le nom du fichier à jeter : "...:Eric's Solitaire Sample prefs", mais c'est précisément celui-là qui refuse "delete" ou "move to"
Pour finir, ceci fonctionne :

tell application "Finder"

move item 5 of folder "systeme & autres:utilisateurs:danheux:bibliothèque:classic:preferences" to the trash

end tell

Mais en cas d'absence du vrai fichier à jeter c'est un autre qui va au bac. C'est donc boiteux mais je ferai avec pour le moment.

Merci encore
 
set chemin to "systeme & autres:utilisateurs:danheux:bibliothèque:classic:preferences"
tell application "Finder" to move file chemin to trash

Ce code effacerait le dossier "préférence" entier. Au chemin il faudrait ajouter le nom du fichier à jeter : "...:Eric's Solitaire Sample prefs", mais c'est précisément celui-là qui refuse "delete" ou "move to"
Pour finir, ceci fonctionne :

tell application "Finder"

move item 5 of folder "systeme & autres:utilisateurs:danheux:bibliothèque:classic:preferences" to the trash

end tell

Mais en cas d'absence du vrai fichier à jeter c'est un autre qui va au bac. C'est donc boiteux mais je ferai avec pour le moment.

Merci encore
Bonjour

Eric's Solitaire Sample prefs a pas une extension (.plist) car c'est obligatoire.

Teste ce code (remplace xxx par l'extension).
Modifie le nom de Preferences dans le chemin, il est avec un smiley sur ton message.

Bloc de code:
[color=#800000]--[/color][color=#FF8000] Si preferences est un dossier : obligatoire[/color]
[color=#0000FF]set[/color] [color=#3F7F00]chemin[/color] [color=#0000FF]to[/color] [color=#800000]"[/color]systeme & autres:utilisateurs:danheux:bibliothèque:classic:preferences:[color=#800000]"[/color]

[color=#0000FF]tell[/color] [color=#0080FF]application[/color] [color=#800000]"[/color]Finder[color=#800000]"[/color]
	[color=#800000]--[/color][color=#FF8000] Nom du fichier avec ça bonne extension[/color]
	[color=#0000FF]if[/color] [color=#800000]([/color][color=#0080FF]exists[/color] [color=#0080FF]file[/color] [color=#800000]"[/color]Eric's  Solitaire Sample prefs.xxx[color=#800000]"[/color] [color=#0000FF]in[/color] [color=#800000]([/color][color=#3F7F00]chemin[/color] [color=#0000FF]as[/color] [color=#0080FF]alias[/color][color=#800000]))[/color] [color=#0000FF]then[/color]
		[color=#0000FF]set[/color] [color=#3F7F00]x[/color] [color=#0000FF]to[/color] [color=#800000]"[/color]Bon[color=#800000]"[/color]
		[color=#800000]--[/color][color=#FF8000]	move file (chemin & "Eric's  Solitaire Sample prefs.xxx" as string) to trash[/color]
	[color=#0000FF]else[/color]
		[color=#0000FF]set[/color] [color=#3F7F00]x[/color] [color=#0000FF]to[/color] [color=#800000]"[/color]Non[color=#800000]"[/color]
	[color=#0000FF]end[/color] [color=#0000FF]if[/color]
[color=#0000FF]end[/color] [color=#0000FF]tell[/color]

A tester dans l'éditeur de scripts.

@+
 
Dernière édition:
Bonsoir,

Je n'ai pas trouvé de suffixe pour cette pref. Voir la vignette ad hoc.

J'ai testé ton script avec toutes les variantes qui me sont venues à l'imagination. Que dalle! Il appert une fois de plus que le nom de cette pref ne plait pas au mac.
Curieusement un script très simple fonctionnait sous MasOsX.4.6 pour autant que le nom soit déposé par copier-coller à partir de l'original, mais ça ne va plus sous MacOsx.4.11.
Une vignette ci-dessous montre que le signe apostrophe de l'original est différent de celui obtenu à partir du clavier. Serait-ce la source du phénomène ?

Le seul moyen qui fonctionne jusqu'à présent est de désigner ce foutu fichier par sa position au sein du dossier "Preferences" mais, comme je l'ai dit, c'est boiteux.

Ne nous énervons pas, je m'en contenterai.

Merci encore pour ton aide.

Charles Danheux