macos — выполнить Applescript из программы на c ++

Я хочу выполнить Applescript команда, которая проверяет, не завершился ли какой-либо процесс, а затем перезапускает это приложение. У меня уже есть сценарий, но теперь мне нужно позвонить из моего c++ код.

Сценарий:

tell application "Activity Monitor" to run  --We need to run Activity Monitor
tell application "System Events" to tell process "Activity Monitor"tell radio button 1 of radio group 1 of group 1 of toolbar 1 of window 1 to click --Using the CPU View
tell outline 1 of scroll area 1 of window 1 -- working with the list
set notResponding to rows whose value of first static text contains "Not Responding" -- Looking for Not responding process
repeat with aProcess in notResponding
set pid to value of text field 5 of aProcess  -- For each non responding process retrieve the PID
if pid is not "" then do shell script ("kill -9 " & pid) -- KILL the PID.
end repeat
end tell
end tell

1

Решение

Вы можете вызвать «osascript», который является инструментом командной строки для выполнения сценария Apple. Используйте встроенную C-команду «system» для ее выполнения. Это может звучать как зависимый от платформы хак, ну, это так! Упаковка кода в назначенный класс должна быть подходящей.

Кстати: прослушивание какой-то активности процесса с использованием AppleScript — это хороший способ? Возможно, вы сможете прочитать информацию о процессе, используя встроенные функции Unix. Думаю об этом

2

Другие решения