Есть ли способ программно найти расположение PST-файлов Outlook текущего пользователя с помощью вызова API или записи в реестре?
Как найти полный путь к файлу Outlook .pst?
Ответы (2)
С помощью Outlook Redemption вы можете перебирать хранилища сообщений в VBA с помощью RDOStores
collection, доступного через свойство RDOSession.Stores
.
Я изучаю возможность сделать что-то подобное в стандартном VBA...
РЕДАКТИРОВАТЬ:
Очевидно, что путь к PST закодирован в строке StoreId. Google обнаружил это:
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
Только что проверил, работает как задумано.
person
Tomalak
schedule
13.10.2008
Удобство Redemption заключается в том, что он явно предоставляет свойство RDOPstStore.PstPath (dimastr.com/redemption/ rdostore.htm#RDOPstStore) без необходимости взлома идентификатора записи в магазине.
- person Dmitry Streblechenko; 12.09.2014
Путь должен быть где-то под:
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Подсистема обмена сообщениями Windows\Profiles\Outlook]
Может быть, это немного поможет.
person
Node
schedule
12.10.2008