2014-11-16 3 views
0

Outlook 2011: Adding some messages to "Waiting for reply" folder에서 스크립트를 사용해 보았습니다. 기본적으로 Outlook 메시지를 작성하고 Ctrl-Shift-W (스크립트 이름에 지정된대로)를 누르면 메시지를 보내고, 보낸 폴더에서 찾은 다음 "대기 중"폴더로 이동하려고합니다. Outlook에서 메시지를 보낼 기회가 있는지 확인하기 위해 보낸 된 폴더에서 메시지를 찾기 전에 지연을 반복적으로 시도합니다.배경에서 applescript를 실행하십시오

지연이 작동하지 않습니다 (지연되지 않음). 실패합니다. do shell script "sleep 1s"으로 확인하면 Outlook이 멈추고 스크립트가 실패 할 때까지 메시지를 보내지 않음을 의미합니다.

Outlook은 백그라운드 작업을 수행하기 전에 스크립트가 끝나기를 기다리고 있다고 생각했습니다. 따라서 스크립트는 백그라운드에서 실행해야합니다. 어쩌면 보조 스크립트 나 비슷한 것을 시작할 수 있습니다.

문제는이 작업을 수행하는 방법을 모른다는 것입니다. 그러므로이 질문은 ...

답변

0

AppleScript는 자체 절전 방법 (지연)을 가지고 있지만, 아마도 유휴 처리기를 찾고있을 것입니다. 스크립트를 응용 프로그램으로 저장하고 "처리기 실행 후 열어 두십시오"를 선택하면 Mac OS X은 "실행"처리기가 ​​완료된 직후 스크립트의 유휴 처리기를 호출합니다. 유휴 처리기는 다음 번에 시간까지 초를 반환합니다. 이것은 무한정 발생할 수 있습니다. 귀하의 경우,이 같은 것을 볼 수 있습니다

global messageID 

on run 
    -- send message 
    -- set messageID to whatever you are using as the just-sent message’s identifier 
end run 

on idle 
    --check whether message exists in the sent folder 
    --note that this is just pseudocode, you’ll need to change it for your purposes 
    if exists messageID in sent folder then 
     --do something with it 
     quit 
    else 
     --wait another second 
     return 1 
    end if 
end idle 

이이 작업을 수행하고 스크립트를 종료 할 점하는이 충족되는 경우 의 기준까지 유휴 초마다 반복됩니다.

+0

죄송합니다,하지만 이것은 나를 위해 작동하지 않습니다. '유휴 상태'섹션이 실행되지 않는 것처럼 보입니다 (처음에는 '표시 알림'이 추가됨). 응용 프로그램으로 저장하고 '열린 상태로 유지'를 확인하고 이전 스크립트를 제거했습니다. 참조 용 앱은 다음과 같습니다. http://pastebin.com/t06shdBh – IttayD

+0

내 생각 엔 Outlook 블록에있는 뭔가가 실행 처리기가 종료되지 않도록하는 것입니다. 나는 두 개의 tell 블록 (Outlook이 없음)을 제거하고 Stay Open을 사용하여 스크립트를 응용 프로그램으로 저장했으며 이제 60 초마다 알림을받습니다. 실행 핸들러의 시작과 끝 부분에 몇 가지 알림을 추가하여이 사실을 확인할 수도 있습니다. –

+0

글쎄, 내가 직접 실행하면 작동하지만, 아웃룩에서 실행하면 안된다. 그래서 뭔가가 Outlook에서 어떻게 실행되는지에 문제가있는 것 같아요. – IttayD

0

는이 같은 시도 할 수 있습니다 :

ignoring application responses 
    tell application "Microsoft Outlook" 
     --send code goes here 
     sync 
    end tell 
end ignoring 

delay 5 

tell application "Microsoft Outlook" 
    -- Find code goes here... 
end tell