"Non autorisé à envoyer des évènements Apple à System Events"

Lucas09Ldt

Membre confirmé
9 Février 2022
12
2
Bonjour,

J'ai exporté un script Apple en tant qu'application, permettant de modifier l'icône d'un fichier, volume, ou dossier.
Seulement, ce script utilise originellement
AppleScript:
tell application "System Events" to tell process "Finder" to tell window 1
Le système n'autorise donc pas l'application à exécuter cette commande...
Pourtant, j'ai accordé le privilège d'accessibilité à celle-ci via les Paramètres Systèmes...
Existe-t-il une autre méthode pour modifier l'icône d'une application sans utiliser "tell "System Events"", via AppleScript ?

Voici le code complet :
AppleScript:
display dialog "Vous devez posséder le droit d'écriture sur le fichier, volume ou dossier dont vous souhaitez modifier l'icône." with icon caution buttons {"Continuer "} with title "IconChanger"

repeat
    set nameList to {"...d'un fichier", "...d'un volume ou un dossier"}
    set choice to (choose from list the nameList with prompt "Modifier l'icône..." with title "IconChanger") as string
    if choice is "false" then exit repeat
   
    if choice is "...d'un fichier" then
        set access to choose file with prompt "Sélectionnez le fichier dont vous souhaitez modifier l'icône"
    end if
    if choice is "...d'un volume ou un dossier" then
        set access to choose folder with prompt "Sélectionnez le volume ou le dossier dont vous souhaitez modifier l'icône"
    end if
   
    set accessi to choose file with prompt "Sélectionnez l'icône de remplacement"
   
    tell application "Finder"
        set touch to "c"
        activate
        open information window of accessi
        activate
    end tell
   
   
    tell application "System Events" to tell process "Finder" to tell window 1
        keystroke tab
        delay 0.5
        keystroke (touch & "w") using command down
        delay 0.5
    end tell
   
    tell application "Finder"
        set touch to "v"
        activate
        open information window of access
        activate
    end tell
   
    tell application "System Events" to tell process "Finder" to tell window 1
        keystroke tab
        keystroke (touch & "w") using command down
    end tell
    exit repeat
   
end repeat

Merci par avance.
 
Bonjour,

Pourtant ce script n'est que le mien en ayant changé quelques nom de variables !!! https://forums.macg.co/threads/modifier-icone-dun-volume-dmg-avec-applescript.1384521/

Il fonctionne très bien chez moi (sous OS Mojave) , après avoir autorisé l'application crée par "enregistrer sous ..." dans :
Préférences système --> Sécurité et confidentialité --> Accesibilité (dans l'onglet confidentialité) et cocher l'application après avoir déverrouiller, clic sur le cadena et entré le mot de passe utilisateur administrateur.

Pour que l'application apparaisse dans la fenêtre accessibilité, il faut qu'elle ai été exécutée une fois en provoquant le message...
 
  • J’aime
Réactions: Powerdom et sinbad21
Essaie de supprimer l'appli dans Sécurité et confidentialité > Accessibilité ainsi que dans Sécurité et confidentialité > Automatisation puis relance l'application et ré-autorise tout ce qu'elle demande.
 
  • J’aime
Réactions: Lucas09Ldt
Bonjour,

Existe-t-il une autre méthode pour modifier l'icône d'une application sans utiliser "tell "System Events"", via AppleScript ?
Pour Modifier l'icone sans passer par "system Events" il faudrait passer par la commande terminal "xattr", j'ai testé et je n'ai pas trouvé de solution satisfaisante à 100%.

Cela à des contraintes.
Il faut avoir,pour modifier un dossier, comme source, un dossier avec icone source et pour modifier un fichier un fichier avec icone source.

Explications:

Pour les dossiers l' icone est enregistré en fichier caché dans le dossier et l'info dans les attributs étendus "Finder info" de ce dossier.
Pour les fichiers l' icone est enregistré dans les attributs étendus "ressource fork" et l'info dans les attributs étendus "Finder info" de ce fichier.
Mais lorsque l'on copie ces "Finder infos" on copie l'ensemble des infos donc risque de supprimer ou d'ajouter des infos qui ne concernent pas ce fichier.