2017-03-27 6 views
1

JavaScript 및 Windows Scripting Host를 사용하여 Outlook 항목을 처리하고 있습니다.vba/wsh에서 현재 활성화 된 Outlook 저장소를 확인하십시오.

사용자 중 한 명이 Outlook에 두 개의 Exchange 프로필이 구성되어있어서 스크립트가 작동하지 않는다고 말할 때까지는 간단했습니다.

스크립트가 작동해야하는 것은 두 번째 프로필이지만, 내가 액세스하면 예를 들어 Outlook 범주 마스터 목록은 표준 프로필에서로드됩니다.

대답은 쉽습니다. 올바른 주소는 Outlook store object입니다. 내 스크립트가 현재 활성화 된 Outlook Explorer에서 어떤 스토어에 액세스하고 있는지 확인해야하며이 기능을 찾을 수 없습니다.

outlook application objectvar ol = new ActiveXObject("Outlook.Application"), 나는 기본적으로 단순히 ol.[ActiveExplorer()][4];를 호출하지만 저장이 액세스되는 세션 객체가, 동등한 기능을 제공하지 않습니다에 의해 현재 활성화 전망 탐색기를 확인할 수 있습니다 감안할 때.

function ActiveStore(olApplication) { 
    var ActiveExplorerCaption=olApplication.ActiveExplorer().Caption; 
    for (var storeCounter=1; storeCounter<=olApplication.Session.Stores.Count; storeCounter++) { 
     var storeDisplayName=olApplication.Session.Stores.Item(storeCounter).DisplayName; 
     if (ActiveExplorerCaption.indexOf(storeDisplayName)!=-1) return olApplication.Session.Stores.Item(storeCounter); 
    } 
    return "undefined"; 
}; 

var ol = new ActiveXObject("Outlook.Application"); 
WScript.Echo("The Outlook store currently active in an explorer is called "+ActiveStore(ol).DisplayName); 
:

것은 내가 저장 '그래서 display names

ol.Session.Stores.Item(counter).DisplayName // "[email protected]" 

내가 작업 한 않는 코드를 통해 루프로 explorer's caption

ol.ActiveExplorer().Caption // "Inbox - [email protected] - Outlook" 

를 비교하여, 해결 방법을 마련했습니다

하지만 궁금합니다.

현재 활성화 된 저장소를 결정하는 더 좋은 방법은 17,451,515,
  • 이 코드는 항상 작동합니다, 항상이 방식으로 설정이 변수가, 아니면 그냥 설치에 내가
  • 작업 할 수 있습니다 즉, 거기 아닌가요?
+0

JavaScript를 사용할 때 Visual Basic으로 태그를 붙인 이유는 분명히 vba (Script)의 솔루션에 열려 있습니다. 왜냐하면 Outlook에서 더 많이 사용되기 때문입니다. Outlook vba에서 작동하는 솔루션이 있다면 wsh jscript에 맞출 수 있습니다. – mheim

답변

3

ActiveExplorer가 있으므로 Explorer.CurrentFolder도 있고 Folder.StoreID도 있습니다. 그런 다음 해당 StoreID 값을 사용하여 Namespace.GetStoreFromID를 사용하십시오.

+0

고마워, 이건 내가 누락 된 링크 야. 그러나 지금은 [Folder.StoreID] (https://msdn.microsoft) 대신 [Folder.Store] (https://msdn.microsoft.com/en-us/library/office/ff863350.aspx)를 사용하고 있습니다. .com/en-us/library/office/ff867495.aspx). 질문에서 단 한 줄로 요약 된이 내 함수 : 'function ActiveStore (olApplication) {return olApplication.ActiveExplorer(). CurrentFolder.Store; }' – mheim