Если флажок уже установлен, закройте приложение.

Я создал сценарий для активации с помощью команды диктовки «Включить общий доступ», которая успешно открывает Системные настройки/Общий доступ/, после чего он автоматически установит флажок, независимо от того, включен он или отключен уже.

Я хотел бы иметь две команды диктовки: одну для включения общего доступа и одну для отключения общего доступа. Как я могу добавить условие, что когда я говорю «Включить общий доступ», он будет запускаться через сценарий, и если флажок общего доступа уже установлен, просто выйдите из системных настроек вместо того, чтобы щелкать этот флажок, если он уже установлен, что на самом деле сняло бы этот флажок?

activate application "System Preferences"
delay 1
tell application "System Events"
    tell process "System Preferences"
        click button "Sharing" of scroll area 1 of window "System Preferences"
    end tell
end tell
activate application "System Preferences"
delay 1
tell application "System Events"
    tell process "System Preferences"
        click checkbox 1 of row 2 of table 1 of scroll area 1 of group 1 of window "Sharing"
    end tell
end tell
tell application "System Preferences"
quit
end tell

person wch1zpink    schedule 18.09.2016    source источник


Ответы (2)


Вот, я исправил это для вас.

activate application "System Preferences"
delay 1
tell application "System Events"
    tell process "System Preferences"
        click button "Sharing" of scroll area 1 of window "System Preferences"
    end tell
end tell
activate application "System Preferences"
delay 1
tell application "System Events"
    tell process "System Preferences"


        set theCheckbox to checkbox 1 of row 2 of table 1 of scroll area 1 of group 1 of window "Sharing"
        tell theCheckbox
            if false then click theCheckbox
        end tell


    end tell
end tell
tell application "System Preferences"
    quit
end tell
person oa-    schedule 18.09.2016
comment
Спасибо за усилия и попытку помочь мне, но я скопировал этот код точно так же, как он есть в вашем посте, и запустил скрипт, и он не сработал. Результаты были... независимо от того, был ли флажок уже установлен или нет, он не установите или снимите флажок. Я также пробовал несколько разных вариантов, которые тоже не сработали. Я буду продолжать пытаться, хотя и опубликую свои результаты, если я смогу понять это. Спасибо еще раз - person wch1zpink; 19.09.2016

Эврика!!! После перебора всевозможных комбинаций.. Это скрипт, который действительно работал так, как мне было нужно..

activate application "System Preferences"
delay 1
tell application "System Events"
    tell process "System Preferences"
        click button "Sharing" of scroll area 1 of window "System Preferences"
    end tell
end tell
activate application "System Preferences"
delay 1
tell application "System Events"
    tell process "System Preferences"
        tell checkbox 1 of row 2 of table 1 of scroll area 1 of group 1 of window "Sharing" to if value is 0 then click
        delay 1
    end tell
end tell
tell application "System Preferences"
     quit
end tell
person wch1zpink    schedule 19.09.2016