¿Cómo encontrar la ruta completa del archivo .pst de Outlook?
Pregunta
¿Hay alguna manera de encontrar mediante programación la ubicación de los archivos .pst de Outlook del usuario actual a través de una llamada API o entrada de registro?
Solución
Con Redención de Outlook , puede iterar los almacenes de mensajes en VBA usando RDOStores
collection, accesible a través de la propiedad RDOSession.Stores
.
Estoy estudiando la posibilidad de hacer algo similar en VBA listo para usar ...
EDITAR:
Obviamente, la ruta al PST está codificada en la cadena StoreId. Google presentó esto :
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
Recién probado, funciona según lo diseñado.
Otros consejos
La ruta debe estar en algún lugar debajo de:
[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Mensajería de Windows Subsistema \ Perfiles \ Outlook]
Quizás esto ayude un poco.