AppleScript без прав администратора, как я могу получить предпочтительное время для пользователей, чтобы открыть приложение? - PullRequest
0 голосов
/ 16 января 2020

У меня есть сценарий автоматизации, над которым я работаю, чтобы мои коллеги каждый раз пытались упростить настройку своей станции. Компьютеры перезагружаются каждый день, и у нас нет доступа администратора, поэтому каждый раз у нас уходит 15 минут.

Мне удалось сократить это до минуты с помощью скрипта, который открывается и размещает 90% необходимых вкладок приложений и веб-сайтов. Хотя он довольно ограничен, потому что я не могу использовать такие вещи, как системные события для перемещения неподдерживаемых приложений

Проблема с автоматизацией настройки рабочего стола заключается в том, что люди приходят за 20-40 минут до смены, и есть приложение, которое мы можно открыть только за одну минуту до начала смены. Если я автоматизирую все, они могут тратить время на беседы и заниматься другими делами, НО это может привести к тому, что пользователи забудут открыть приложение или откроют его слишком рано, и возникнут проблемы.

Я знаю, как установить определенное c время, которое приложение может открывать, но мне нужно, чтобы оно работало с изменением смен, которое может быть одним из 20 различных смен, поэтому, чтобы сделать его более удобным, мне понадобится текстовое поле или раскрывающийся список menu

Я не знаю, каким образом я могу использовать AppleScript для этого.

Есть ли другие творческие способы, которыми я могу это осуществить?

1 Ответ

0 голосов
/ 16 января 2020

Если вы используете текущие версии ОС Ma c, вы можете использовать AppleScript Objective- c для создания более сложных диалогов, чем стандартные. Например, если вы хотите создать всплывающее меню для времен, вы можете сделать что-то вроде этого:

use framework "Foundation"

property ca : current application
property NSPopUpButton : class "NSPopUpButton"
property NSAlert : class "NSAlert"
property NSArray : class "NSArray"

set timeList to {"8:00", "9:00", "10:00", "11:00", "12:00", "..."}
set popUpFrame to ca's NSMakeRect(0, 0, 215, 26)
set timePopup to NSPopUpButton's alloc()'s initWithFrame:popUpFrame pullsDown:false
timePopup's addItemsWithTitles:(NSArray's arrayWithArray:timeList)

set alert to NSAlert's alloc's init
alert's addButtonWithTitle:"Select"
alert's addButtonWithTitle:"Cancel"
alert's |window|()'s setTitle:"Start Time"

alert's setAccessoryView:timePopup

set modalResponse to 0 as integer
set modalResponse to alert's runModal() as integer
if modalResponse is equal to ca's NSAlertFirstButtonReturn then
    set returnedValue to timePopup's titleOfSelectedItem() as text
end if

Позволит пользователю выбрать время и поместить выбранную строку в returnedValue .

Если вы предпочитаете что-то типа выбора времени, это тоже можно сделать, но, возможно, этого достаточно, чтобы начать работу.

Редактировать: запускать сценарии, отображающие windows или оповещения, их нужно поставить на передний план. Это означает, что (из редактора скриптов) вы должны использовать ^ ⌘r или выбрать «Выполнить» из «Скрипта», удерживая нажатой клавишу управления. В противном случае вы получите раздражающее предупреждающее сообщение, или Редактор скриптов вызовет sh (довольно изящно). Это имеет значение только тогда, когда вы работаете из редактора скриптов; из Script Menu или из приложения все будет работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...