如何在 Mac OS X 上*在前台*定期顯示警報訊息?

如何在 Mac OS X 上*在前台*定期顯示警報訊息?

我想要一個警報/對話框定期啟動在前景中在我的 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

得到了答案提出不同的要求:

解決辦法是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)實際上是作為 and 傳遞argv[0],因此與這裡無關。實際的第一個參數是/Users/[...]/periodic.app應用程式目錄而不是實際的二進位。

相關內容