Возможно ли «Бросить других»?

5

Если кто-то удерживает вариант а также контроль щелкнув значок в Dock, полученное меню содержит Скрыть других команда, такая, что только выбранное приложение видно на экране. Это полезно при создании презентации, записи экрана или при других обстоятельствах. Одна проблема заключается в том, что программы, работающие в фоновом режиме, могут по-прежнему генерировать ошибки и т. Д., Которые могут неловко вызывать их повторное появление во время показа экрана, презентации и т. Д.

Возможно ли создать какую-либо команду (или службу, или что-то еще) для «выхода из других», то есть команду, которая будет завершать все приложения, кроме самой передней?

Daniel
источник

Ответы:

5

С использованием Так ответь ссылается на Диаго Возможно, что-то вроде следующей модификации может исключить текущее активное приложение:

tell application "System Events"
    set the visible of every process to true
    set app_name to name of the first process whose frontmost is true
end tell
set white_list to {"Finder", app_name}
try
    tell application "Finder"
        set process_list to the name of every process whose visible is true
    end tell
    repeat with i from 1 to (number of items in process_list)
        set this_process to item i of the process_list
        if this_process is not in white_list then
            tell application this_process
                quit
            end tell
        end if
    end repeat
on error
    tell the current application to display dialog "An error has occurred!" & return & "This script will now quit" buttons {"Quit"} default button 1 with icon 0
end try

Затем вы можете добавить это как службу с помощью Automator и назначить для нее сочетание клавиш в разделе «Клавиатура» в Системных настройках.

Matt Swain
источник
@ Matt Swain, вы только что собрали этот пост, или есть ошибка где-то в системе? Поскольку я просто пытался ответить на свой собственный вопрос, следуя указаниям Диаго, и когда я нажал кнопку «Отправить», этот ответ появился, но приписался вам. Но либо мы написали то же самое, что вполне возможно, я полагаю, либо каким-то образом мой пост был приписан кому-то другому.
Daniel
@DanielL Да, я написал это сообщение - не вижу вашего сообщения, но если, как вы говорите, оно очень похоже на это, то, возможно, оно было автоматически отфильтровано? Weird.
Matt Swain
Хорошо, вау, вы использовали другое имя переменной, чем я. Что ты назвал appname я звонил current_process, Мы просто имели ту же идею. Ну, молодец.
Daniel
3

Есть ответ на ТАК по этому поводу Выйти из всех приложений, используя Applescript? с кодом для AppleScript, который может выйти из всех приложений. Я думаю, его просто нужно изменить, чтобы проверить, что такое активное приложение, а затем установить его в качестве службы на Mac. Есть статья о последнем доступном Вот ,

BinaryMisfit
источник