2009-10-08 9 views
1

Je travaille sur un script dans lequel un utilisateur se connecte à un compte invité sur le système d'exploitation et est invité à fournir ses informations d'identification réseau pour monter son dossier de départ réseau (alors qu'il bénéficie de travailler sur un dossier utilisateur local).Ajouter un élément à la barre latérale de la boîte de dialogue Finder/Enregistrer

Lorsque le dossier Invité est supprimé lorsque les utilisateurs se déconnectent, je souhaite les décourager d'y enregistrer quelque chose. Je voudrais remplacer les éléments des listes latérales Finder et Open/Save (tels que "Desktop", nom d'utilisateur, "Documents", etc.) par ceux qui seraient sauvegardés dans leur dossier de départ réseau.

Il est possible de le faire en utilisant des API AppleScript ou Cocoa, ou dois-je modifier un plist et redémarrer le Finder? [Ack. En regardant dans ~/Library/Preferences/com.apple.sidebars.plist, il n'est pas du tout comment je le remplir]

Questions similaires:.

AppleScript: adding mounted folder to Finder Sidebar?

  • Suggère en utilisant fstab; Ce code fonctionnera très probablement en tant qu'utilisateur et, en réalité, il serait trop tard.

How do you programmatically put folder icons on the Finder sidebar, given that you have to use a custom icon for the folder?

  • dit qu'il n'y a pas d'API Cocoa, mais que vous pouvez utiliser une API LSSharedFileList style de carbone qui est seulement documenté dans un seul fichier d'en-tête.
  • Est-ce que quelqu'un connaît un exemple de code pour ajouter un élément à la barre latérale du Finder?

Répondre

3

Il est possible de le faire en utilisant les API AppleScript ou de cacao, ou dois-je modifier un plist et redémarrez le Finder?

n °

Comme je l'ai dit à cette autre question, la bonne façon d'ajouter un élément à la barre latérale est d'utiliser LSSharedFileList.

+0

Y at-il des exemples de code pour aider? Je connais un peu la programmation Cocoa, mais rien sur la programmation Carbon. Oui, je sais programmer en C et C++, mais il y a seulement une petite tâche dans l'API que je veux terminer maintenant, et je ne sais pas comment procéder. –

+0

Ce n'est pas du carbone; C'est Core Services. Vous pouvez regarder le code de Growl - nous accédons à la liste des éléments de connexion, mais c'est la même procédure. http://code.google.com/p/growl Le code est dans GrowlPreferencesController, IIRC. –

+0

Merci; Je vais être sûr d'y jeter un coup d'œil. –

3

Un collègue est venu avec cette méthode qui utilise AppleScript:

tell application "Finder" 
    activate 
    -- Select the path you want on the sidebar in the Finder 
    select folder "Preferences" of folder "Library" of (path to home folder) 
    tell application "System Events" 
     -- Command-T adds the Documents Folder to the sidebar 
     keystroke "t" using command down 
    end tell 
end tell 
+1

C'est fragile. Si Apple modifie ou supprime ⌘T comme commande clé pour cet élément de menu, ou si l'utilisateur a défini ⌘T sur un autre élément de menu, votre script sera détruit. –

+0

Il se cassera aussi si l'utilisateur essaie d'utiliser l'ordinateur pendant que votre script est en cours d'exécution - ce qui est probable; ils viennent de se connecter et veulent faire leur travail. –

+0

Et whaddya savoir ... Apple a changé ⌘T pour ouvrir un nouvel onglet dans le Finder. La nouvelle commande est maintenant^⌘T. – dejuknow

Questions connexes