Bonsoir Blackvicking,
Tout d'abord pourquoi ton script ne fonctionne pas/plus :
Tout script, faisant appel à des keystrokes, click menu, click buttons et autres méthodes pour simuler l'interface utilisateur, est condamné à ne plus fonctionner un jour.... au gré des mises à jour de l'éditeur.
En effet, ces scripts se basent sur l'apparence de l'interface utilisateur.
Il suffit que l'éditeur du logiciel (ici Apple pour les préférences système) change un bouton, un groupe de boutons, ajoute un item de texte, change la façon de grouper des menus ou tous autres éléments de l'interface...et ton script ne fonctionne plus.
C'est le cas. Ta fenêtre de préférences de partage réseau (10.8) n'est plus la même que lors de l'écriture initiale du script (sans doute une version antérieure).
La règle à retenir est qu'il faut donc utiliser les UI elements (c'est le nom Applescript des éléments d'interface graphique) uniquement lorsque c'est obligatoire, après avoir épuisé toutes les autres solutions.
Ceci étant précisé, si tu souhaites accéder à ces UI elements, il faut les connaître (pour ta version de système et peut être pas la suivante !). Pour se faire, tu vas devoir faire des essais successifs avec Applescript pour cataloguer ces éléments.
Une fois connus, tu pourras écrire ton script qui clickera sur des boutons, cases à cocher et autres, dont tu auras les numéros et l'organisation.
Le script ci-dessous est le point de départ de cette recherche :
1 2 3 4 5 6 7 8 9
| tell application "System Events"
tell application "System Preferences"
set current pane to pane "com.apple.preferences.sharing"
activate
end tell
tell application process "System Preferences"
get UI elements of front window
end tell
end tell |
Le bloc "tell/end tell des system Preferences" ouvre tout simplement la fenêtre de partage et la met au premier plan. La ligne 7 va nous donner les UI elements de cette fenêtre.
Dans l'Editeur Applescript, après l'exécution de ce code, tu auras ces éléments dans la partie "évènements / réponses". Voici une partie de la réponse que j'ai (en 10.6)
Résultat:
{button 1 of window "Partage" of application process "System Preferences" of application "System Events", text field "Nom de l’ordinateur :" of window "Partage" of application process "System Preferences" of application "System Events", group 1 of window "Partage" of application process "System Preferences" of application "System Events", checkbox "Pour empêcher les modifications, cliquez ici." of window "Partage" of application process "System Preferences" of application "System Events", tool bar 1 of window "Partage" of application process "System Preferences" of application "System Events"}
(j'ai coupé des morceaux pour cet exemple)
Certains éléments sont des groupes, des listes, des boutons etc... il faut les identifier et ensuite modifier le script pour faire par exemple un :
get UI elements of tool bar 1 of window "Partage"
A ajouter dans le script entre les lignes 7 et 8, car la première execution m'a indiqué que la fenêtre contient un "tool bar 1 or Window "Partage".
Une nouvelle exécution du script te donnera la liste de UI elements de ta tool bar 1.
Et ainsi de suite.... Qui a dit laborieux ?
Il est donc clair, pour ceux qui ont encore le courage de lire cette longue explication, que ce n'est pas pérenne (màj risquée) et lourd.
On en revient donc à se poser la question (que tu aurais du te poser au début
) ; pourquoi as tu besoin de changer ces préférences de partage ?
Je pense que tu peux les régler directement, en mettant des mots de passe et ensuite utiliser des scripts pour te connecter aux dossiers qui t'intéressent via scripts.
J'ai fait cela pour ma chère épouse (une pure néophyte informatique !) qui se connecte au média center, échange des enregistrements TV ou des musiques sur le NAS, sans même savoir que ce peuvent être des dossiers distants !
A toi de voir, j'espère au moins avoir éclairé ta lanterne.
Cordialement
Partager