Wie vollständigen Pfad von Outlook PST-Datei zu finden?
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?
Lösung
Mit Outlook Redemption , können Sie die Nachricht speichert in VBA mit RDOStores
collection, 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.