프로세스가 실행되지 않지만 도크에 앱이 표시됨 다시 활성화하는 것입니다. 그러나이

자동 실행되는 “스크립트”응용 프로그램에 의존하는 애플 스크립트가 있습니다. 도크가 여전히 실행중인 것으로 표시하더라도 “연락처”프로세스가 활동 모니터에서 신비하게 사라지면 실패하는 경우가 있습니다.

다음은 작동하지 않습니다.

  1. Applescript “응용 프로그램”연락처 “활성화
  2. Applescript “응용 프로그램”연락처 “종료 (둘 다”응용 프로그램이 실행되지 않음 “으로 응답)
  3. Applescript “do shell script killall launchserviced”다음에 “killall dock”이 실행되지만 문제가 해결되지 않습니다

유일한 해결책은 도크에서 “연락처”를 수동으로 종료 한 다음 다시 활성화하는 것입니다. 그러나이 솔루션은 수동 개입이 필요하기 때문에 만족스럽지 않습니다. a) 오류가 발생하는 이유와 b) applescript에서 “주소록”을 질문하여 오류를 어떻게 처리 할 수 ​​있습니까?

모든 아이디어를 부탁드립니다

….

bmike의 의견에 대한 답변;

OS X 10.10.5를 실행하면 여기에 애플 스크립트의 관련 섹션이 있습니다.

오늘 날짜를 텍스트로 (현재 날짜)로 설정

* 응용 프로그램 “시스템 이벤트”

try
    set myprocessid to (get id of process "Contacts")
on error number errorno
    display dialog errorno
    if errorno is equal to -1728 then -- process not found
        try
            tell application "System Events" to run application "Contacts"
        on error number errorno
            if errorno = -600 then
                display dialog errorno & todaysdate as text
            end if
        end try
        do shell script "/bin/sleep 3" --and allow enough time for the app to activate
    end if
end try

말하다

이 섹션은 프로세스가 실행 중이 아닌 것을 발견하면 “연락처”활성화를 시도합니다 (오류 -1728). 그런 다음 앱을 실행하려고 시도하지만 항상 -600 (앱이 실행되지 않음)으로 오류가 발생합니다. 응용 프로그램을 종료하는 간단한 애플 스크립트도 -600으로 오류가 발생합니다.

따라서 프로세스가 누락되면 앱을 활성화 할 수없고 종료도 작동하지 않습니다.

귀하의 의견에 감사드립니다



답변

나는 마침내 이것을 극복 할 수있는 방법을 찾은 것 같았다. 다소 조잡하지만 나를 위해 일했습니다.

errorno = -600 인 경우 응용 프로그램에 “시스템 이벤트”에 프로세스 “Dock”을 알리십시오. 목록의 UI 요소 “연락처”를 클릭하십시오. “process”Contacts “에게 visible을 false로 설정하십시오.

도크를 클릭하면 프로세스가 프로세스 목록에 다시 나타난 다음 앱을 종료하거나 다시 시작할 수 있습니다. 기묘한.