2009-10-08 71 views
1

我正在處理腳本,其中用戶登錄到OS上的guest帳戶並提示輸入其網絡憑據以掛載其網絡主文件夾(雖然他們受益於在本地用戶文件夾上工作)。將項目添加到Finder/Save對話框邊欄

由於客人文件夾在用戶註銷時被刪除,我想阻止他們在那裏保存任何東西。我想用Finder和Open/Save邊欄列表中的項目(例如「桌面」,用戶名,「文檔」等)替換保存到其網絡主文件夾中的項目。

使用AppleScript或Cocoa API可以做到這一點,或者我需要修改plist並重新啓動Finder嗎? [確認。展望〜/庫/首選項/ com.apple.sidebars.plist,它是根本不清楚我是怎麼想填充它]

類似的問題:

AppleScript: adding mounted folder to Finder Sidebar?

  • 建議使用fstab;這段代碼很可能會以用戶身份運行,並且確實在那時自動掛載會爲時已晚。

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

  • 說,沒有可可的API,但你可以使用碳風格LSSharedFileList的API,僅在一個頭文件中。
  • 有誰知道一些示例代碼將項目添加到Finder側邊欄?

回答

3

這是可能做到這一點使用AppleScript或可可的API,或者我需要修改的plist並重新啓動查找?

正如我在其他的提問時表示,將項目添加到側邊欄的正確方法是使用LSSharedFileList。

+0

是否有任何示例代碼,以幫助嗎?我對Cocoa編程有所瞭解,但對Carbon編程一無所知。是的,我確實知道如何使用C和C++進行編程,但是現在我只想完成API中的一項小任務,而且我不清楚如何繼續。 –

+0

它不是碳;它是核心服務。您可以查看Growl的代碼 - 我們訪問登錄項目列表,但它是相同的過程。 http://code.google.com/p/growl該代碼位於GrowlPreferencesController,IIRC。 –

+0

謝謝;我一定會看看這個。 –

3

一位同事想出了使用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

這是脆弱的。如果Apple更改或刪除⌘T作爲該菜單項的鍵盤命令,或者如果用戶在另一個菜單項上設置了⌘T,則會破壞您的腳本。 –

+0

如果用戶在腳本運行時嘗試使用計算機,這也會中斷 - 這很可能;他們剛剛登錄並希望完成他們的工作。 –

+0

和whaddya知道...蘋果改變了⌘T在Finder中打開一個新標籤。新命令現在是^⌘T。 – dejuknow