Frage

Gibt es eine Möglichkeit, um programmatisch die Position des aktuellen Benutzers Outlook PST-Datei zu finden (n) durch einen API-Aufruf oder einen Registrierungseintrag?

War es hilfreich?

Lösung

Mit Outlook Redemption , können Sie die Nachricht speichert in VBA mit RDOStorescollection, erreichbar über die RDOSession.Stores iterieren Eigenschaft.

Ich bin auf der Suche in die Möglichkeit eines ähnlich, etwas zu tun in Out-of-the-box-VBA ...

EDIT:

Offensichtlich auf die PST wird der Pfad in der StoreID Zeichenfolge codiert. Google drehte dieser up:

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

Just getestet, funktioniert wie vorgesehen.

Andere Tipps

Der Pfad sollte irgendwo unter sein:

  

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

Vielleicht hilft das ein wenig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top