5

API 呼び出しまたはレジストリ エントリを使用して、現在のユーザーの Outlook .pst ファイルの場所をプログラムで見つける方法はありますか?

4

2 に答える 2

5

Outlook Redemptionを使用すると、プロパティRDOStoresを介してアクセスできるコレクションを使用して、VBA でメッセージ ストアを反復処理できRDOSession.Storesます。

すぐに使えるV​​BAで同様のことを行う可能性を検討しています...

編集:

明らかに、PST へのパスは StoreId 文字列でエンコードされます。Googleはこれを見つけました:

Sub PstFiles()
  Dim f As MAPIFolder

  For Each f In Session.Folders
    Debug.Print f.StoreID
    Debug.Print GetPathFromStoreID(f.StoreID)
  Next f
End Sub

Public Function GetPathFromStoreID(sStoreID As String) As String
  On Error Resume Next
  Dim i As Long
  Dim lPos As Long
  Dim sRes As String

  For i = 1 To Len(sStoreID) Step 2
    sRes = sRes & Chr("&h" & Mid$(sStoreID, i, 2))
  Next

  sRes = Replace(sRes, Chr(0), vbNullString)
  lPos = InStr(sRes, ":\")

  If lPos Then
    GetPathFromStoreID = Right$(sRes, (Len(sRes)) - (lPos - 2))
  End If
End Function

テストしただけで、設計どおりに動作します。

于 2008-10-13T12:09:40.193 に答える
0

パスは次のどこかにある必要があります。

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook]

多分これは少し役立ちます。

于 2008-10-12T19:17:08.443 に答える