2010-05-16 8 views

ответ

1

Решение для папки - use a catalog iterator, чтобы получить информацию Finder для каждого элемента в папке. Информация Finder представляет собой структуру FileInfo или FolderInfo, которая содержит QuickDraw Point (интегральные координаты, начало вверху слева, положительное y вниз), указывающее, где будет отображаться значок.

Я не знаю, как вы это сделаете для рабочего стола. В папке «Домой» есть папка «Рабочий стол», но, изучая ее содержимое, вы, вероятно, получите позиции, которые Finder будет использовать для отображения этой папки в окне. Он также, вероятно, не будет включать ничего «на рабочем столе», которого нет в папке «Рабочий стол», например, установленных томов.

0

следующего сценарий яблоко будет получить эти позиции (использовать либо сценарии мост или NSAppleScript)

tell application "Finder" 
    tell every item of desktop 
     get position 
     get name 
    end tell 
end tell 
+0

Не работает для меня. Я получаю -1, -1 для каждого значка. –

+0

Извините, был жестко закодированный путь, указывающий на мой рабочий стол. исправил его, указав на «рабочий стол» –

+0

Это работало? Тогда вы можете отметить вопрос, как ответили. –

3

Попробуйте этот AppleScript код

tell application "Finder" 
    get desktop position of every item of desktop 
end tell 
0

Другим решением (Очень похоже на один из @Vaskravchuk)

tell application "Finder" 
    repeat with anItem in desktop 
     get {desktop position, name} of anItem 
    end repeat 
end tell 
Смежные вопросы