Изменить способ сортировки файлов на рабочем столе с помощью Applescript - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь написать простой Applescript, чтобы изменить параметр «Сортировать по» в параметрах просмотра рабочего стола Finder.

enter image description here

При попытке записать действие в ScriptEditor ничего не происходит.При записи действия с открытой папкой регистрируется только размер значка ...

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Это работает для меня, используя последнюю версию macOS Mojave.

-- THE NUMBERS IN THE FOLLOWING RECORD VARIABLES ARE KEY CODE NUMBERS
property theSorting : {sortByName:18, sortByKind:19, sortByDateLastOpened:20, sortByDateAdded:21, sortByDateModified:23, sortBySize:22, sortByTags:26}

sortBy(theSorting's sortBySize) -- sort by size
-- sortBy(theSorting's sortByName) -- would be sort by name etc...

to sortBy(theNumber)
    tell application "Finder" to activate
    repeat until application "Finder" is frontmost
        delay 0.1
    end repeat
    tell application "System Events"
        key code theNumber using {control down, option down, command down}
    end tell
end sortBy
0 голосов
/ 18 февраля 2019

может быть несколько способов сделать то, что вы хотите автоматически.с помощью Applescript в словаре Finder вы не сможете открыть всплывающее Имя, чтобы «показать параметры презентации».с Automator путем создания службы и использования « Файл и папки » и «, чтобы получить указанные элементы » и« Set Folders View » вы можете изменить все параметры и вызывать службу в любое время.

В Applescript необходимо собрать элемент пользовательского интерфейса AXSystemFloatingWindow, этоне очень хорошо усваивается, не всегда эффективен, но он существует.

Ниже приведен пример applesscrcipt с уже открытым окном поиска.

set Name_loc to "Name"
set Name_loc1 to "None"

tell application "Finder"
    activate
    make Finder window
end tell

tell application "System Events" to tell process "Finder"
    set frontmost to true
    set wName to name of window 1
    if not (exists (first window whose (name is wName and subrole is "AXSystemFloatingWindow"))) then
        keystroke "j" using {command down}
        repeat
            if exists (first window whose (name is wName and subrole is "AXSystemFloatingWindow")) then exit repeat
            delay 0.1
        end repeat
    end if
    tell (first window whose (name is wName and subrole is "AXSystemFloatingWindow"))
        set thePopUp to pop up button 1
        click thePopUp
        click menu item Name_loc of menu 1 of thePopUp
        set thePopUp to pop up button 2
        click thePopUp
        click menu item Name_loc1 of menu 1 of thePopUp
        click button 1
        click button 2
    end tell
end tell

tell application "Finder"
    activate
    quit
end tell

delay 1
tell application "Finder" to activate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...