# Droplet Applescript d'action Finder qui ne fonctionne plus sous Mojave - J'ai vraiment besoin d'aide



## PO_ (15 Octobre 2018)

Bonjour à tous,

Il y a quelques années, un contributeur de ce forum m'a concocté un Apple script que j'utilise depuis, quasiment tous les jours sous la forme d'un droplet inséré dans la barre d'outils des fenêtres Finder.

Ce script permet, à partir d'un fichier donné, de transférer ce fichier dans un dossier portant le même nom que le fichier.

en voici le code 
	
	



```
on open fileList
    tell application "Finder"
        repeat with i in fileList
            set ext to " ." & name extension of i
            set n to do shell script "basename " & ¬
                quoted form of POSIX path of i & ext
            set f to make new folder at (container of i) ¬
                with properties {name:n}
            move i to f
        end repeat
    end tell
end open
```

J'ai fait hier la mise à jour 10.14 Mojave, en ayant sauté la 10.13, j'ai la mauvaise surprise de constater que ce script, ne fonctionne plus dans la dernière version de l'OS ; j'obtiens la fenêtre d'erreur suivante :
*
"Non autorisé à envoyer des évènements à Finder
*
Non autorisé à envoyer des évènements Apple à Finder. (-1743)*"
*
Je suis vraiment embêté car j'utilise énormément ce script. Si quelqu'un pouvait me dire ce qui coince, j'en serais vraiment très reconnaissant.


----------



## zeltron54 (15 Octobre 2018)

Bonjour,

Je n'ai pas encore installé Mojave.
Mais j'essaierai d'aller dans préférences système --> Sécurité et confidentialité -->  Onglet confidentialité, dans la colonne de gauche --> Accessibilité, dans la fenêtre de droite cocher  Editeur de script .

Cela devrait autoriser les Applescripts à accéder au finder et au système (pour pouvoir exécuter la commande (do shell script).


----------



## PO_ (15 Octobre 2018)

Merci, mais ça ne fonctionne pas, ni en mettant le script lui-même (en fait un droplet), ni l'éditeur de script. Même après redémarrage de la machine


----------



## zeltron54 (15 Octobre 2018)

Tu as bien cocher Editeur de script dans les préférences système ?


----------



## PO_ (15 Octobre 2018)

oui,   j'y ai pensé.


----------



## zeltron54 (15 Octobre 2018)

Ton script est enregistré en tant qu'application pour être un droplet, donc c'est lui qu'il faut autoriser dans les préférences système.

En appuyant sur le + et en sélectionnant ton droplet.

Je pense que ça doit être ça, sinon ... je peux pas tester (sur Hight sierra ton script fonctionne chez moi). Ou le réécrire sans commande shell, uniquement en applescript, (à essayer)


----------



## PO_ (16 Octobre 2018)

J'ai bien entendu essayé d'ajouter également le script et là non plus, sans succès.


----------



## zeltron54 (16 Octobre 2018)

Au cas ou ce serait la commande "do shell script" qui bloque, tu peux essayer le script ci-dessous, qui fait la même chose sans commande shell.
Il faut l'enregistrer en temps qu'application.
en espérant que . j'attends le résultat de tes test !


```
on open fileList
    tell application "Finder"
        repeat with i in fileList
            set ext to "." & name extension of i
            set nom to name of i as string
            set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
            set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
            set elements to text items of nom
            set n to (items 1 thru -2 of elements) as string
            set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
            set f to make new folder at (container of i) with properties {name:n}
            move i to f
        end repeat
    end tell
end open
```


----------



## PO_ (17 Octobre 2018)

Yesssssss ! ! ! 

Ça marche. 

Ça m'a demandé l'autorisation pour que cette application contrôle le finder. et après, ça a fonctionné. 

Par contre, très bizarrement, en ayant simplement copié le code dans le droplet précédent, j'avais eu la même erreur. 

EN ayant créé une nouvelle application ça a fonctionné après que j'aie donné l'autorisation. 

Mille mercis à toi.


----------



## zeltron54 (17 Octobre 2018)

Ok content pour toi !


----------



## Looklabas (2 Mai 2020)

zeltron54 a dit:


> ....



Bonjour

J'ai un problème similaire... pourriez vous m'aider?

Ce scripte est sensé ouvrir FaceTime et composer un numéro de téléphone sans mon aide. Malheureusement il ne valide pas le bouton "Call" ou "Appeler" et reste sur la fenêtre ouverte de FaceTime . Si j'appuie manuellement ça fonctionne.


Merci d'avance.

Voici mon script :

*set* phone_num *to* "0750393857"
*do shell script* "open facetime://" & quoted form *of* phone_num
*tell* _application_ "System Events"
*repeat* *until* (_button_ "Call" *of* _window_ 1 *of* _application process_ "FaceTime" *exists*)
*delay* 1
*end* *repeat*
*click* _button_ "Call" *of* _window_ 1 *of* _application process_ "FaceTime"
*end* *tell*


----------

