Вимкнути значок для певного додатка зі сценарієм


2

Я знаю, що я можу ввімкнути / вимкнути значок з центру сповіщень, але чи є спосіб це зробити за допомогою сценарію?

Якщо можливо, я хотів би зробити для конкретного додатка, інакше буде цікаво вимкнути його для всіх додатків.

Поки мені вдалося це зробити:

tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.notifications"
tell application "System Events"
   tell process "System Preferences"
        select row 2 of table 1 of scroll area 1 of window "Notifications" 
        click checkbox "Badge app icon"  of group 1 of window "Notifications" 
   end tell
end tell

кінець розповісти

Є лише одна проблема :

  • список повинен залишатися незмінним, і ви повинні знати індекс. Чи існує спосіб доступу по імені?

PS: Я використовував дуже зручний http://pfiddlesoft.com/uibrowser/index-downloads.html, щоб дізнатися, як ідентифікувати об'єкти

Відповіді:


1

Наступний приклад коду AppleScript працює для мене в macOS High Sierra :

Примітка: Зміна "Calendar"в set appName to "Calendar"до відповідного цільовим додатком.


set appName to "Calendar"

if running of application "System Preferences" then
    quit application "System Preferences"
    delay 1
end if
tell application "System Preferences"
    set the current pane to pane id "com.apple.preference.notifications"
    delay 1
    tell application "System Events"
        tell table 1 of scroll area 1 of window 1 of application process "System Preferences"
            repeat with i from 2 to (count rows)
                if value of static text 1 of group 1 of UI element 1 of row i is appName then
                    select row i
                    exit repeat
                end if
            end repeat
        end tell
        delay 0.2
        click checkbox "Badge app icon" of group 1 of window 1 of application process "System Preferences"
    end tell
    quit
end tell

Налаштування системи не повинні бути видимими, щоб це працювало, і чому в прикладі коду AppleScript немає activate команди . Крім того, якщо Налаштування системи вже відкрито, вона спочатку закривається перед тим, як решта коду буде оброблена. Це робиться з декількох причин, перша з яких вже була заявлена, а по-друге, перегляд оброблюваних подій інтерфейсу є візуальним відволіканням і може дратувати.

Також відзначимо , що значення з delay команд може знадобитися скорегувати для вашої системи, і чи додаткові delay команди можуть або не можуть бути необхідні. Відрегулюйте значення та / або додайте / видаліть delay команди, як це доречно.


Щодо версії, яка діє для декількох додатків та / або всіх додатків у Центрі сповіщень у системних налаштуваннях , дивіться мою відповідь на тему : Видалити декілька значків значків програми одним сценарієм?


Примітка . Приклад коду AppleScript - це лише те, що не використовує жодних помилок, і він призначений лише для показу одного з багатьох способів виконання завдання. Користувач завжди зобов’язаний додавати / використовувати відповідне поводження з помилками, якщо потрібно / хотілося.


дякую, працює як шарм. З цікавості, як / де ви навчились усім командам та мові програмувати це? Я годинами google, але важко знайти приклад або посилання на те, як взаємодіяти з інтерфейсом користувача тощо.
EsseTi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.