如何查找 Outlook .pst 文件的完整路径?

发布于 2024-07-06 09:34:27 字数 58 浏览 9 评论 0原文

有没有办法通过 API 调用或注册表项以编程方式查找当前用户的 Outlook .pst 文件的位置?

Is there a way to programmatically find the location of the current user's Outlook .pst file(s) through an API call or registry entry?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素年丶 2024-07-13 09:34:28

通过 Outlook Redemption,您可以使用 RDOStores 集合迭代 VBA 中的邮件存储,可通过 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

刚刚测试,按设计工作。

With Outlook Redemption, you can iterate the message stores in VBA using RDOStorescollection, accessible via the RDOSession.Stores property.

I am looking into the possibility of doing something similar in out-of-the-box VBA...

EDIT:

Obviously, the path to the PST is encoded in the StoreId string. Google turned up this:

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

Just tested, works as designed.

遗失的美好 2024-07-13 09:34:28

该路径应该位于以下位置:

[HKEY_CURRENT_USER\Software\Microsoft\Windows
NT\CurrentVersion\Windows 消息传递
子系统\配置文件\Outlook]

也许这会有所帮助。

The path should be somewhere under:

[HKEY_CURRENT_USER\Software\Microsoft\Windows
NT\CurrentVersion\Windows Messaging
Subsystem\Profiles\Outlook]

Maybe this helps a bit.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文