Outlook が MAPI プロファイルまたは RPC over HTTP/S プロファイルを使用しているかどうかを確認するために、VBScript コードを記述する必要があります。
では、どのレジストリキーが同じことを決定するのか、誰か教えてもらえますか?
助けてください。
これは Outlook 2013 で変更されました。
プロファイルは次のキーの下に保存されます。
HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Outlook\Profiles
<version>
は次のいずれかです。
7.0
8.0
9.0
10.0
11.0
12.0
14.0
(原文のまま!)15.0
16.0
上記のバージョン情報は、この回答からコピーされました。
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Simple MAPI-CMC
まず、Outlook 97-2010 の場合、プロファイルは に保存されHKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles
ます。
Outlook 2013 (サイド バイ サイド インストールをサポート) 以降、プロファイルは に保存されますHKEY_CURRENT_USER\Software\Microsoft\Office\%version%\Outlook\Profiles
。%version% は、Outlook 2013 の場合は 15.0、Outlook 2016 の場合は 16.0 などです。
低 (拡張 MAPI) レベルでは、RPC-over-HTTP (ROH) 設定は、PR_PROFILE_RPC_PROXY_SERVER_FLAGS プロパティ (0x66230003) の ROHFLAGS_USE_ROH ビットによって決定されます。このプロパティは、グローバル プロファイル セクションと特定の Exchange ストア プロファイル セクションで設定されます (Outlook が 1 つのプロファイルで複数の Exchange アカウントをサポートするようになったため)。
OutlookSpyでデータを表示できます。OutlookSpy リボンの IMAPISession ボタンをクリックし、OpenProfileSession をクリックして{C8B0DB13-05AA-1A10-9BB0-00AA002FC45A} pbGlobalProfileSectionGuid
、コンボ ボックスからエントリを選択します。
Extended MAPI は VB (または .Net) からは使用できないことに注意してください。Redemption / Profmanを使用するオプションがある場合は、次のスクリプトを使用してすべてのプロファイルを列挙し、ROH が使用されているかどうかを確認できます。
PR_PROFILE_RPC_PROXY_SERVER_FLAGS = &H66230003
ROHFLAGS_USE_ROH = 1
set Profiles=CreateObject("ProfMan.Profiles")
for i = 1 to Profiles.Count
set Profile = Profiles.Item(i)
set GlobalProfSect = Profile.GlobalProfSect
Debug.Print "Profile: " & Profile.Name & " ------"
flags = GlobalProfSect.Item(PR_PROFILE_RPC_PROXY_SERVER_FLAGS)
If TypeName(flags) = "Long" Then
if (flags And ROHFLAGS_USE_ROH) = ROHFLAGS_USE_ROH Then
Debug.Print " ROH is used"
Else
Debug.Print " ROH is not used"
End If
Else
Debug.Print " No PR_PROFILE_RPC_PROXY_SERVER_FLAGS"
End If
next
既に Outlook を実行していて、現在のプロファイルが ROH を使用していることを確認したい場合は、RDOSessionを使用できます。ExchangeConnectionProperties.UseROH
財産:
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
MsgBox Session.ExchangeConnectionProperties.UseROH