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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top