주기적으로 실행되는 경고/대화 상자를 갖고 싶습니다.전경에내 맥에서.
나는 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는 (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
실제 바이너리가 아닌 앱 디렉터리입니다.