Задача: нажать кнопку в определенном окне. Хорошо, если программа имеет встроенные функции и нажатие кнопки можно командой через AppleScript. Но если нам надо нажать кнопку в неизвестном окне, например в системных настройках? Ниже будет показано, как это сделать.
Для того, чтобы имитировать нажатие кнопки через AppleScript, необходимо проверить, включены ли элементы пользовательского интерфейса, проще говоря, разрешит ли система вам это сделать.
MacOS очень интересно именует различные элементы управления, а именно: Button 1, Text Field 2 и так далее. То есть, окно представляется некоторым массивом элементов графического интерфейса, причем у каждого класса своя нумерация.
Теперь приступим непосредственно к нажатию. Подопытным кроликом для нас будет кнопка включения Bluetooth в системных настройках. Ниже приведен исходный текст скрипта. Он достаточно простой с учетом коментариев выше.
Данную функцию (turnBluetooth()) можно вызвать в любом месте вашего скрипта, написав:
Для того, чтобы имитировать нажатие кнопки через AppleScript, необходимо проверить, включены ли элементы пользовательского интерфейса, проще говоря, разрешит ли система вам это сделать.
MacOS очень интересно именует различные элементы управления, а именно: Button 1, Text Field 2 и так далее. То есть, окно представляется некоторым массивом элементов графического интерфейса, причем у каждого класса своя нумерация.
Теперь приступим непосредственно к нажатию. Подопытным кроликом для нас будет кнопка включения Bluetooth в системных настройках. Ниже приведен исходный текст скрипта. Он достаточно простой с учетом коментариев выше.
on turnBluetooth()
tell application "System Preferences"
activate
set current pane to pane "Bluetooth"
--enabling bluetooth
tell application "System Events"
if UI elements enabled then
tell tab group 1 of window "Bluetooth" of process "System Preferences"
click button 1
end tell
end if
end tell
end tell
tell application "System Preferences" to quit
end turnBluetooth
Данную функцию (turnBluetooth()) можно вызвать в любом месте вашего скрипта, написав:
my turnBluetooth()