Mac OS X에서 *포그라운드*에 경고 메시지를 주기적으로 표시하는 방법은 무엇입니까?

Mac OS X에서 *포그라운드*에 경고 메시지를 주기적으로 표시하는 방법은 무엇입니까?

주기적으로 실행되는 경고/대화 상자를 갖고 싶습니다.전경에내 맥에서.

나는 AppleScript의 조합을 시도했고 launchdlaunchd를 통해 주기적으로 스크립트(실제로 앱으로 변환됨)가 실행되도록 관리했습니다. 그러나 경고 상자는 다른 모든 창 앞에 표시되지 않습니다(탭을 탭할 때까지 완전히 숨겨져 있음).하다) 을 통해 시작하세요 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는 (in /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)는 실제로 로 전달되므로 argv[0]여기서는 관련이 없습니다. 실제 첫 번째 인수는 /Users/[...]/periodic.app실제 바이너리가 아닌 앱 디렉터리입니다.

관련 정보