1

Я хочу, чтобы на моем Mac периодически появлялось предупреждение / диалоговое окно.

Я попробовал комбинацию AppleScript и launchd и сумел периодически запускать скрипт (фактически преобразованный в приложение) через launchd. Однако окно предупреждения не появляется перед всеми другими окнами (а полностью не скрыты , пока я не вкладки к ней - хотя она начала через launchd программ ). Как я могу получить это впереди?

Мой сценарий выглядит следующим образом:

on run
    activate me --> tried to get alert in foreground
                --> didn't help, though
    display alert "Should show up in foreground..."
end run

Мой файл launch.plist (в /Users/bernhard/Library/LaunchAgents/):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>bernhard.sitstraight.plist</string>

    <key>Program</key>
    <string>/Users/bernhard/programming/periodic.app/Contents/MacOS/applet</string>

    <key>RunAtLoad</key>  
    <true/>

    <key>StartInterval</key>
    <integer>1200</integer>
</dict>
</plist>

1 ответ1

0

Получил ответ на Ask Different:

Решение состоит в том, чтобы open приложение, которое больше похоже на двойной щелчок по значку приложения. То есть нужно заменить программу, которая будет вызвана /usr/bin/open и передать приложение в качестве аргумента следующим образом в файле launchd.plist:

<key>Program</key>
<string>/usr/bin/open</string>
<key>ProgramArguments</key>
<array>
    <string>open</string>
    <string>/Users/bernhard/programming/periodic.app</string>
</array>

Первый аргумент (в данном случае open) фактически передается как argv[0] и, следовательно, здесь не имеет значения. Тогда фактическим первым аргументом является /Users/[...]/periodic.app - каталог приложения, а не фактический двоичный файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .