2012-03-13 4 views
3

Когда UI Scripting в Applescript, вы можете пометить флажок:Отметьте флажок, только если он не выбран

tell application "System Events" 
    tell process "World Conqueror" 
    click checkbox "Sell wives as slaves" of sheet 1 of window 1 
    end tell 
end tell 

Это есть проблема. Если флажок «Доступность жен» уже отмечен галочкой, вы фактически отмените галочку, и вам придется жить с женами навсегда. Как вы можете поставить галочку только в том случае, если она уже не отмечена галочкой?

ответ

10

Различные элементы пользовательского интерфейса имеют свойства, которые вы можете проверить. Для галочки, то значения свойства будет 1 или 0 в зависимости от того, проверяются или нет, так что вы можете использовать значение непосредственно или принуждать к булеву, например:

tell application "System Events" to tell process "World Conqueror" 
    set theCheckbox to checkbox "Sell wives as slaves" of sheet 1 of window 1 
    tell theCheckbox 
     if not (its value as boolean) then click theCheckbox 
    end tell 
end tell 
1

ответа от Red_menace ISN «т вполне ясно, вы могли бы подумать что делает такую ​​вещь, как это:

set theCheckbox to checkbox "Random order" of tab group 1 of window "Desktop & Screen Saver" 
      tell theCheckbox 
       if false then click theCheckbox -- if false does not reference the 'theCheckbox', it is simply doing nothing 
      end tell 

Тогда он никогда не будет вычислять, если условие.

Поэтому я изменил к средней части к

set theCheckbox to checkbox "Change picture:" of tab group 1 of window "Desktop & Screen Saver" 
     tell theCheckbox 
      set checkboxStatus to value of theCheckbox as boolean 
      if checkboxStatus is false then click theCheckbox     
     end tell 

А потом он работал.

Смежные вопросы