AppleScript를 사용하여 일부 조건(OS X)에 따라 애플리케이션을 앞으로 가져오는 방법

AppleScript를 사용하여 일부 조건(OS X)에 따라 애플리케이션을 앞으로 가져오는 방법

저는 웹 페이지에서 발생하는 이벤트를 기반으로 웹 브라우저를 앞으로 자동으로 가져오는(예: 포커스를 주고 화면에 표시되도록) 방법을 찾으려고 합니다. 나는 웹페이지에 대한 모든 권한을 가지고 있으므로 이를 실행하기 위해 필요한 모든 작업을 수행하도록 할 수 있습니다.

일부 비디오 카메라를 모니터링하는 백그라운드에서 웹 페이지로 여러 앱을 열어야 합니다. 비디오 카메라에 움직임이 있으면 사용 중인 앱 대신 웹 브라우저 창이 앞으로 나오도록 해야 합니다.

나는 이 사람이 하려는 일과 비슷한 것을 생각하고 있었습니다.Mac OS X Lion에서 15분마다 애플리케이션을 앞으로 가져오는 방법은 무엇입니까?

나는 AppleScript를 사용하여 연속 루프로 실행하려고 생각하고 있었고 Safari에서 열린 페이지를 잠시 확인하고 일부 변경 사항을 검색한 다음 Safari에 "활성화" 명령을 보내서 앞으로 가져오려고 했습니다. 이것이 내가 이 문제를 해결하는 방법인가요, 아니면 더 좋은 방법이 있나요?

답변1

아마도 스크립트를 백그라운드 프로세스로 실행하는 대신 launchd 또는 cron을 사용할 것입니다.

  1. AppleScript Editor의 어딘가에 다음과 같은 스크립트를 저장하십시오.

    try
        tell application "Safari"
            tell document 1 where name starts with "Webcam" to do JavaScript "--"
            if result is "--" then activate
        end tell
    end
    
  2. 다음과 같이 속성 목록을 저장하세요.~/Library/LaunchAgents/com.superuser.443513.plist

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.superuser.443513</string>
        <key>ProgramArguments</key>
        <array>
            <string>osascript</string>
            <string>/Users/username/Library/Scripts/script.scpt</string>
        </array>
        <key>StartInterval</key>
        <integer>5</integer> <!-- every 5 seconds -->
    </dict>
    </plist>
    
  3. launchctl load ~/Library/LaunchAgents/com.superuser.443513.plist


컬을 사용하여 상태를 확인할 수 있습니까? crontab을 편집 EDITOR=nano crontab -e하고 다음과 같은 줄을 추가하면 2분마다 실행할 수 있습니다 .

*/2 * * * * [[ -n "$(curl -L http://superuser.com/questions/443513 | grep automate)" ]] && open http://example.com

관련 정보