Comment trouver le chemin complet du fichier Outlook .pst?
Question
Existe-t-il un moyen de rechercher par programme l'emplacement du ou des fichiers Outlook .pst de l'utilisateur actuel par le biais d'un appel d'API ou d'une entrée de registre?
La solution
Avec Redemption Outlook , vous pouvez effectuer une itération des banques de messages dans VBA à l'aide de RDOStores collection, accessible via la propriété
RDOSession.Stores
.
J'examine la possibilité de faire quelque chose de similaire dans la VBA prête à l'emploi ...
EDIT:
Évidemment, le chemin d'accès au fichier PST est codé dans la chaîne StoreId. Google a découvert ceci :
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
Vient de tester, fonctionne comme prévu.
Autres conseils
Le chemin doit être quelque part sous:
[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows Messagerie NT \ CurrentVersion \ Windows Sous-système \ Profils \ Outlook]
Peut-être que cela aide un peu.