user1766912
user1766912

Reputation: 45

Verify a checkbox before clicking with Applescript

I'm facing an issue with one of my applescript. I'm trying to create an applescript that check/uncheck the checkbox that call the password after the mac wake up or the screensaver stop in the mac security pannel. I'm using this with proximity.app, with the idea that when i'm back home and my phone is in range, proximity.app remove the password, but when i'm out of range, it put the password back. Well... I'm forced to do it using UI scripting, because of the new security policy in Mountain Lion.

So there is the code when out of range :

tell application "System Preferences"
set current pane to pane id "com.apple.preference.security"
tell application "System Events"
    tell process "System Preferences"
        tell first window
            tell first tab group
                click radio button 1
                if not 1 then click checkbox 1
                click menu item 6 of menu of pop up button 1
            end tell
        end tell
    end tell
end tell
quit

end tell

and when in range :

tell application "System Preferences"
set current pane to pane id "com.apple.preference.security"
tell application "System Events"
    tell process "System Preferences"
        tell first window
            tell first tab group
                click radio button 1
                click checkbox 1
            end tell
        end tell
    end tell
end tell
quit

end tell

What i want to improve, is a way to first verify if the box is check or uncheck before checking or unchecking it.

Thanks for your help.

Upvotes: 3

Views: 4200

Answers (1)

jackjr300
jackjr300

Reputation: 7191

Just check the value of the checkbox.

0 = Uncheck, 1 = check

tell application "System Preferences" to ¬
    reveal anchor "Advanced" of pane id "com.apple.preference.security"
tell application "System Events"
    tell first tab group of first window of process "System Preferences"
        tell checkbox 1 to if value is 0 then click -- checkbox was not checked.
    end tell
end tell
quit application "System Preferences"

Upvotes: 6

Related Questions