如何在 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并将应用程序作为参数传递,如下所示:

<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– 应用程序目录,而不是实际的二进制文件。

相关内容