2009-07-21 5 views
1

다양한 IM 클라이언트를 멀리두고, iTunes를 닫은 다음 내 스크린 세이버를 시작하는 AppleScript를 작성했습니다.AppleScript for unlock screen 대화 상자

tell application "Adium" 
    go away 
end tell 

tell application "Skype" 
    send command "SET USERSTATUS AWAY" script name "StatusSetter" 
end tell 

tell application "iTunes" 
    if player state is playing then 
     pause 
    end if 
end tell 

activate application "ScreenSaverEngine" 

이것은 암호로 보호 된 화면 보호기로, 일단 화면 보호기가 사라지면 역으로 수행하려고합니다. 분명히 각 응용 프로그램에 대한 '말하기'작업은 문제가되지 않지만 일단 화면이 잠기면 이러한 작업을 수행하는 방법을 찾지 못하는 것 같습니다. 나는 이것이 LoginItem과 동일하다고 가정했으나 그렇지 않다.

도움을 주셨습니다.

답변

3

매우 멋진 아이디어 - 나는 이것을 생각하지 못했습니다. ScriptSaver을 사용하려는 것 같습니다. 스크린 세이버가 활성화되고 비활성화 될 때 특정 스크립트를 실행할 수 있습니다. 이 방법을 사용하면 더 나은 적용 범위를 얻을 수 있으며, 방금 컴퓨터를 켜둔 상태에서 스크립트 실행에 대해 걱정할 필요가 없습니다. 난 내 머리 위로 떨어져 생각할 수

+0

Ah ha. 내 대답보다 나은 대답. – Josh

+0

나는 이것을 조사했지만, 이중 화면에 문제를 일으키는 작은 버그가있다. (개발자가 알고있는 주석의 모습으로). 한 화면에만 표시된다는 것이 아닙니다. Flurry가 실행 중이며 내 화면에서 크게 확대/축소하고 흐리게 보입니다.보기가 정말 어렵습니다. –

1

한 가지 방법은,

activate application "ScreenSaverEngine" 

display dialog "Are you back yet?" 

하는 것입니다 그리고, 그 후, 모든 것을 다시 시작합니다. 그러면 화면 보호기 뒤에 대화 상자가 표시되어 버튼을 클릭하여 모든 응용 프로그램을 다시 시작할 수 있습니다.

+0

니스, 고마워! 적어도 이것을 임시 솔루션으로 사용 하겠지만 화면을 다시 활성화하면 자동으로 수행 할 수있는 방법이 좋을 것 같습니다. –

1

확인. 약간의 연구가 끝나면 나에게 찾아 보니 화면 보호기가 실행 중일 때만 ScreenSaverEngine이 실행됩니다. 이것이 사실이라면, 다음의 코드에 가까운 당신을 위해 무엇을 찾고 :

set screenSaverRunning to false 

repeat while not screenSaverRunning 
    try 
     set t to (do shell script "ps awx | grep ScreenSaverEngine | grep -v grep") 
     set screenSaverRunning to true 
    on error errStr number errNum 

    end try 
    delay 1 
end repeat 


--Screen Saver is now running... 


repeat while screenSaverRunning 
    try 
     set t to (do shell script "ps awx | grep ScreenSaverEngine | grep -v grep") 
    on error errStr number errNum 
     set screenSaverRunning to false 
    end try 
    delay 1 
end repeat 

--Screen Saver Stopped/Now at password prompt 

내가 암호 상자가이 약 ... 당신은 수 중 하나가 작동을 표시 할 때 ScreenSaverEngine 실행이 중지되고 볼 수있는 유일한 문제 끊임없이 확인하거나 암호를 입력하기에 충분한 시간 지연을 추가하십시오. 어느 것도 훌륭한 해결책이 아닙니다 ...

관련 문제