Como encontrar a caminho completo do arquivo .pst do Outlook?
Pergunta
Existe uma maneira de encontrar programaticamente o local do Outlook arquivo .pst do usuário atual (s) através de uma entrada chamada de API ou registro?
Solução
Com Outlook Redenção , você pode iterar os armazenamentos de mensagens em VBA usando RDOStores
collection, acessível através da RDOSession.Stores
propriedade.
Eu estou olhando para a possibilidade de fazer algo semelhante em out-of-the-box VBA ...
EDIT:
Obviamente, o caminho para o PST é codificada na seqüência storeId. Google transformou-se este :
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
Apenas testado, funciona como projetado.
Outras dicas
O caminho deve estar em algum lugar em:
[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows Messaging Subsystem \ Profiles \ Outlook]
Talvez isso ajude um pouco.