Gibt es eine Möglichkeit, programmgesteuert den Speicherort der Outlook-PST-Datei (en) des aktuellen Benutzers durch einen API-Aufruf oder Registrierungseintrag zu finden?Wie finden Sie den vollständigen Pfad der Outlook-PST-Datei?
5
A
Antwort
5
Mit Outlook Redemption können Sie die Nachrichtenspeicher in VBA mit der RDOStores
Sammlung, die über die RDOSession.Stores
-Eigenschaft zugänglich ist, iterieren.
Ich suche in der Möglichkeit, etwas Ähnliches in Out-of-the-box zu tun VBA ...
EDIT:
Offensichtlich ist der Pfad zu dem PST in der StoreID Zeichenfolge codiert. Google aufgedreht this:
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
gerade getestet, wie vorgesehen funktioniert.
0
sollte der Pfad irgendwo unter:
[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ Currentversion \ Windows Messaging Subsystem \ Profiles \ Outlook]
Vielleicht hilft ein wenig .
Dieser Code funktioniert, ohne Outlook Redemption verwenden zu müssen. – Vic
Der Vorteil von Redemption besteht darin, dass die RDOPstStore.PstPath-Eigenschaft (http://www.dimastr.com/redemption/rdostore.htm#RDOPstStore) explizit verfügbar gemacht wird, ohne die ID des Geschäftseintrags hacken zu müssen. –