Come trovare il percorso completo del file .pst di Outlook?
Domanda
Esiste un modo per trovare a livello di programmazione la posizione dei file .pst di Outlook dell'utente corrente tramite una chiamata API o una voce di registro?
Soluzione
Con Redenzione di Outlook , puoi iterare gli archivi di messaggi in VBA utilizzando RDOStores , accessibile tramite la proprietà
RDOSession.Stores
.
Sto esaminando la possibilità di fare qualcosa di simile in VBA out-of-the-box ...
EDIT:
Ovviamente, il percorso al PST è codificato nella stringa StoreId. Google ha scoperto 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
Appena testato, funziona come previsto.
Altri suggerimenti
Il percorso dovrebbe essere da qualche parte sotto:
[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows Messaging Subsystem \ Profiles \ Outlook]
Forse questo aiuta un po '.