簡體   English   中英

我可以獨立使用全球地址列表語言嗎?

[英]Can I reach Global Address List language independently?


我想創建一個 excel 工具,它在操作的某個時候會打開 Outlook 的全局地址列表。 我已經想出了如何做到這一點,但是當我們在德語計算機上嘗試時出現了問題。 我已經通過在打開通訊錄之前檢查 UI 語言來解決它,但我想知道是否有一種獨立於語言的方式來做到這一點? (所以我不需要為每種可能的語言創建一個案例。)
我相應的代碼部分是:
 langCode=Application.LanguageSettings.LanguageID(msoLanguageIDUI) Select Case langCode Case &H409 galStr="Global Address List" Case &H40E galStr="Globális címlista" Case &H407 galStr="Globale Addressliste" Case Else galStr="Global Address List" End Select Set olApp=GetObject(,"Outlook.Application") Set olGAL=olApp.GetNamespace("MAPI"). AddressLists(galStr)

非常感謝您的幫助。

對於用戶語言和編程語言的獨立性,有枚舉。

OlAddressListType 枚舉 (Outlook)

您可以遍歷所有地址列表並通過以下方式獲取 GAL,而不是嘗試找到正確的本地化字符串:

If(addrList.AddressListType ==
            Outlook.OlAddressListType.olExchangeGlobalAddressList) Then
 ' this is GAL
End If

您可以使用創建Recipient對象的NameSpace.CreateRecipient函數。 根據地址簿解析收件人后,您可能會獲得電子郵件地址。

我還發現了以下文章 - 獲取全球地址列表或一組您可能會發現有用的商店地址列表

使用Namespace. GetGlobalAddressList - 它將返回配置文件中主要 Exchange 帳戶的 GAL。

至於AddrList.AddressListType屬性,它將僅為主要 Exchange 帳戶的 GAL 返回olExchangeGlobalAddressList 對於輔助帳戶,它將是一個通用的olExchangeContainer

如果您在配置文件中有多個 Exchange 帳戶,則可以通過使用AddressList.PropertyAccessor讀取兩個 MAPI 屬性來確定特定地址列表是否為 GAL: PR_AB_PROVIDER_ID必須為"DCA740C8C042101AB4B908002B2FE182"PR_DISPLAY_TYPE必須為DT_GLOBAL ( 0x00020000 )。

如果使用Redemption (我是它的作者)是一種選擇,除了公開RDOSession 地址簿 GAL (類似於 OOM 中的Namespace.GetGlobalAddressList ),它還公開了 RDOExchangeAccount 帳戶級別的GAL屬性( AllRooms屬性也公開)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM