Applescript, чтобы скрыть приложение / псевдоним

Я пытаюсь написать приложение с помощью Applescript в Automator, которое работает на терминале на Mac Air под управлением Sierra. Учетная запись, использующая приложение, имеет родительский контроль, но мне нужно предоставить им доступ к терминалу для запуска приложения. В конечном счете, мы не хотим, чтобы пользователи аккаунта имели доступ к терминалу. Итак, я пытаюсь найти способ удалить или скрыть псевдоним.

Я могу удалить псевдоним с помощью скрипта ниже, но когда они пытаются использовать приложение снова не работает, потому что терминал больше не доступен:

tell application "System Events" to delete alias "/Path/to/Library/Managed Items/My Applications/Terminal"
end tell

когда я попытался скрыть псевдоним, как показано ниже, я получаю сообщение об ошибке о том, что процесс не может быть установлен в false:

tell application "System Events" 
        set visible of application process "/Path/to/Library/Managed Items/My Applications/Terminal" to false
end tell

не уверен, если я могу загрузить терминал в начале скрипта, а затем удалить его в конце или, если есть способ, чтобы скрыть псевдоним.

любые предложения были бы весьма признательны!!

вот моя вся код:

on run {input, parameters}

tell application "System Events"
    key code 21 using option down
end tell --used to deactivate trackpad

tell application "Terminal"
    activate
    tell application "Terminal"
    do script "su <admin account>" --not root
    delay 2
    tell application "System Events"
        keystroke "<password>" & return
        delay 2
        keystroke "sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/" & return --used to disable keyboard
        delay 2
        keystroke "<password>" & return
        delay 2
        keystroke "exit" & return
        delay 2
        tell application "Terminal"
            do script with command "rm -R release.zip; rm -R release; wget https://URL/for/webserver/release.zip; unzip release.zip; rm -rf __MACOSX" in window 1 --deletes old configuration .zip file and folder; downloads new configuration files; unzips new configuration files
            delay 15
        end tell
        tell application "Terminal"
            do script with command "su <admin account>" in window 1
            delay 2
            tell application "System Events"
                keystroke "<password>" & return
                delay 2
                keystroke "sudo kextload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/" & return --reloads keyboard
                delay 2
                keystroke "exit" & return
                delay 2
            end tell
            tell application "Terminal"
                do script with command "release/pc-release-mac.command --config config.properties; exit" in window 1 --Launches print release software
            end tell
        end tell
    end tell
    delay 2
    tell application "Terminal"
        quit
    end tell
end tell
end tell
end tell

tell application "System Events"
    key code 21 using option down
end tell --reactivates trackpad

return input
end run

любые улучшения были бы весьма признательны! Я новичок в скриптинге, поэтому я запутался в большей части этого.

30
задан krees
22.04.2023 0:41 Количество просмотров материала 3392
Распечатать страницу

2 ответа

Если вы используете команду "do Shell script" в AppleScript, команда будет выполнена без запуска терминала.app вот пример" do Shell script " AppleScript, чтобы попробовать. Обратите внимание, что терминал не запускается.

display dialog (do shell script "curl ifconfig.co") with icon 2 buttons "OK" default button 1 with title "Your Current IP Address Is.." giving up after 5
1
отвечен wch1zpink 2023-04-23 08:29

после прочтения комментариев, опубликованных 8bittree и wch1zpink, я решил изучить использование Applescript для запуска сценариев оболочки. Я смог получить все, что мне нужно, на простом, простом скрипте, который не требует терминала. Моя проблема, прежде чем пытаться использовать скрипт оболочки, заключалась в том, что я оставил сценарий по умолчанию в окне. После того, как я удалил его, код ниже сделал именно то, что мне нужно:

do shell script "rm -R /Users/<account>/release.zip; rm -R /Users/<account>/release; curl -L https://URL/to/webserver/release.zip -o /Users/<account>/release.zip; unzip -o /Users/<account>/release.zip -d /Users/<account>; rm -rf /Users/<account>/__MACOSX; /Users/<account>/release/pc-release-mac.command --config config.properties"

не требует терминала; не требует отключения клавиатуры; не требует отключение трекпада; не требует, чтобы пароли были жестко закодированы.

спасибо вам обоим за направление!!!

1
отвечен krees 2023-04-23 10:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх