IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

partager un dossier dans Préferences systèmes


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    assistant informatique
    Inscrit en
    Mai 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : assistant informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2013
    Messages : 27
    Par défaut partager un dossier dans Préferences systèmes
    Bonjour,

    dans un script qui fait plusieurs actions, j'aimerais partager le dossier public d'un compte utilisateur.

    J'ai trouvé une partie d'applescript qui fait des choses dans les préférences systèmes mais pas dans le partage de dossier. J'ai essayé de comprendre la logique mais ..... j'y arrive pas.

    voici ce que j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    -- -----------------------------------------------------------------
    tell application "System Events"
    	if exists process "System Preferences" then
    		quit application "System Preferences"
    		delay 1
    	end if
    end tell
    -- -----------------------------------------------------------------
    tell application "System Preferences"
    	activate
    end tell
    -- -----------------------------------------------------------------
    tell application "System Events"
    	tell process "System Preferences"
    		delay 1
    		click menu item "Partage" of menu "Présentation" of menu bar 1
    		delay 1
    		tell window "Partage"
    			tell tab group 1
    				click radio button "Services"
    				delay 1
    				select row 1 of table 1 of scroll area 1 -- partage de fichier
    				if exists button "démarrer" then
    					click button "démarrer"
    				end if
    			end tell
    		end tell
    	end tell
    end tell
    -- -----------------------------------------------------------------
    ignoring application responses
    	tell application "System Preferences" to quit
    end ignoring
    -- -----------------------------------------------------------------
    Le système ne trouve pas group 1 et je pense que la suite est fausse aussi.

    Je suis sous mac OS 10.8.5

    Si quelqu'un peut m'indiquer un lien où ce genre de manip est expliqué ca serait sympa.


    Merci à vous.

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre averti
    Homme Profil pro
    assistant informatique
    Inscrit en
    Mai 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : assistant informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2013
    Messages : 27
    Par défaut
    Bonsoir, merci pour ta réponse complète qui va me donner de long moment d'analyse de résultat

    La réponse à la question pourquoi changer les permissions: mon responsable veux qu'il en soit ainsi. Dans les versions antérieures au 10.8 le dossier public d'un nouvel utilisateur était automatiquement partagé et il en est de même pour Mavericks. Je ne sais pas pourquoi mais Apple l'a enlevé sous 10.8. Étant donné que mon responsable est très pointilleux, je préfère automatiser la chose dans un script.

    J'adapterais le script pour qu'il s'adapte à l'OS.

    Je reviendrais pour partager mon script.

    Bon week end.

  4. #4
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour,
    Si il s'agit de mettre d'office un dossier partagé à chaque utilisateur, il se pourrait que ta solution passe par la création d'un dossier en lui assignant des autorisations particulières.

    L'avantage est que la création de dossier est simple en Applescript et qu'un "do shell script" avec la commande Shell chown permet de lui changer les autorisations sans passer par l'interface utilisateur.

    A ce titre, voici un article Apple sur les autorisation et leur changement:
    http://support.apple.com/kb/HT2963?v...R&locale=fr_FR

    Bien sûr, pas de problèmes sur les utilisateurs d'une même machine, mais pour les accès des autres machines, cela dépend aussi de ton réseau et des groupes d'accès que vous avez défini.

    Bon courage

  5. #5
    Membre averti
    Homme Profil pro
    assistant informatique
    Inscrit en
    Mai 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : assistant informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2013
    Messages : 27
    Par défaut
    bon, j'ai encore un soucis.

    J'ai suivi le procédé que tu m'as indiqué et j'ai finalement trouvé le chemin du bouton qui m’intéresse (ligne 10) mais je n'arrive pas à y accéder dans mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    tell application "System Events"
    	activate
    	tell application "System Preferences"
    		activate
    		set current pane to pane "com.apple.preferences.sharing"
    		activate
    	end tell
    	tell application process "System Preferences"
    		get UI elements of front window
    		get UI elements of button 1 of group 1 of group 1 of tool bar 1 of window "Partage"
    	end tell
    end tell
    Mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    -- -----------------------------------------------------------------
    tell application "System Events"
    	if exists process "System Preferences" then
    		quit application "System Preferences"
    		delay 1
    	end if
    end tell
    -- -----------------------------------------------------------------
    tell application "System Preferences"
    	activate
    end tell
    -- -----------------------------------------------------------------
    tell application "System Events"
    	activate
    	tell application "System Preferences"
    		activate
    		delay 2
    		set current pane to pane "com.apple.preferences.sharing"
    		activate
    		delay 1
    		tell tool bar 1 of windows "Partage"
    		--click button 1 of group 1 of group 1 of tool bar 1 of window "Partage"
     
    	end tell
    end tell
    -- -----------------------------------------------------------------
    ignoring application responses
    	tell application "System Preferences" to quit
    end ignoring
    -- -----------------------------------------------------------------
    J'ai une erreur ligne 21 ou à la ligne 22 quand je place la ligne 21 en commentaire et que je retire les -- devant click button:





    Je ne comprend pas pourquoi ca ne fonctionne pas alors que j'ai recopié le style de syntaxe que j'ai pu trouver sur le web.

  6. #6
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir Blackviking,
    Je pense que ton erreur vient de la ligne 15 qui est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tell application "System Preferences"
    ... mais qui devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tell application process "System Preferences"
    J'ai aussi des scripts qui fonctionnent avec simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tell process "System Preferences"
    Car ce n'est pas à l'application que s'adressent tes clicks, mais au process qui la fait tourner.

    Ceci étant, je ne vois pas l'utilité de tes lignes 1 à 12, qui activent et quittent système préférences.
    Pour info dans le code que je t'avais proposé, les lignes 1 à 4 fonctionnent aussi si la fenêtre préférence est déjà ouverte !

    Cordialement

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/12/2013, 22h53
  2. partage de dossier dans seven
    Par hammag dans le forum Windows 7
    Réponses: 3
    Dernier message: 28/10/2011, 00h08
  3. [OL-2003] partager un dossier mail dans Outlook
    Par FULGONI dans le forum Outlook
    Réponses: 0
    Dernier message: 24/11/2010, 22h54
  4. partager un dossier
    Par philippe123 dans le forum ASP
    Réponses: 6
    Dernier message: 25/01/2005, 15h01
  5. lister des dossiers dans un ComboBox
    Par taulmaril dans le forum Windows
    Réponses: 7
    Dernier message: 01/05/2004, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo