【已解决】au3如何获取outlook当前使用的pst的位置?
本帖最后由 wsfda 于 2011-5-7 18:16 编辑各位大哥!小弟这里拜托大家了,请问au3如何获取outlook当前使用的pst的位置?请问可以使用注册表吗?还是有其他的方法,实在想不出,请大家帮帮忙吧?或者使用批处理行吗?
谢谢各位了! 我在作品展览里面看见了一个大哥写的用户文件备份工具,但是不知道他怎么获取outlook邮件存储位置的,因为每个人的邮件储存位置可能不一样,有人改到D、E盘去了 注册表吧,仅供参考。 #include <Array.au3>
$asPSTPath = _GetPSTPath()
If IsArray($asPSTPath) Then _ArrayDisplay($asPSTPath)
Func _GetPSTPath()
Local $sFolderSubString, $sPath, $asPathSearch, $sReturn
Local $oOutlook = ObjCreate("Outlook.Application")
Local $oNS = $oOutlook.GetNamespace("MAPI")
If IsObj($oNS) Then
For $objFolder In $oNS.Folders
$sPath = ""
For $i = 1 To StringLen($objFolder.StoreID) Step 2
$sFolderSubString = StringMid($objFolder.StoreID, $i, 2)
If $sFolderSubString <> "00" Then $sPath &= Chr(Dec($sFolderSubString))
Next
$asPathSearch = StringRegExp($sPath, "(?i)\w(:\\|\\\\)\w.*", 2)
If IsArray($asPathSearch) Then $sReturn &= $asPathSearch & Chr(28)
Next
Return StringSplit(StringTrimRight($sReturn, 1), Chr(28))
Else
SetError(1)
Return 0
EndIf
EndFunc 非常感谢你的回复,我先研究下,由衷的感谢!!! 大概都看懂了,查了很多资料,真的太谢谢你了,但是技术实在有限,数组返回后,如何把数组的内容使用变量来显示呢?谢谢帮忙,真的由衷的感谢!
我自己也在继续努力去尝试,但是还是希望您能提供方法来转换,谢谢 回复 6# wsfda
#include <Array.au3>
$asPSTPath = _GetPSTPath()
If $asPSTPath > 1 Then MsgBox(0,'',$asPSTPath) ;路径 1
If $asPSTPath > 2 Then MsgBox(0,'',$asPSTPath) ;路径 2
If $asPSTPath >= 3 Then MsgBox(0,'',$asPSTPath) ;路径 3
;If IsArray($asPSTPath) Then _ArrayDisplay($asPSTPath)
Func _GetPSTPath()
Local $sFolderSubString, $sPath, $asPathSearch, $sReturn
Local $oOutlook = ObjCreate("Outlook.Application")
Local $oNS = $oOutlook.GetNamespace("MAPI")
If IsObj($oNS) Then
For $objFolder In $oNS.Folders
$sPath = ""
For $i = 1 To StringLen($objFolder.StoreID) Step 2
$sFolderSubString = StringMid($objFolder.StoreID, $i, 2)
If $sFolderSubString <> "00" Then $sPath &= Chr(Dec($sFolderSubString))
Next
$asPathSearch = StringRegExp($sPath, "(?i)\w(:\\|\\\\)\w.*", 2)
If IsArray($asPathSearch) Then $sReturn &= $asPathSearch & Chr(28)
Next
Return StringSplit(StringTrimRight($sReturn, 1), Chr(28))
Else
SetError(1)
Return 0
EndIf
EndFunc
非常给力的代码,谢谢A哥,以后好好学习 小弟还有一事请求,获得outlook Express的数据库路径呢,好像和office outlook是不一样的,
帮帮忙,十分感谢各位了 嘿嘿,OE的好像注册表里就有, 我也想了解这个 我测试了一下,非常给你。感谢共享!我在问一个问题,如何知道outlook邮箱的版本和安装路径。 @小A:你写的代码为什么在有的机器是可以获得到PST安装位置路径,有的不行。 本来也想分享的,但是看到前面几位已经分享出来了{:face (72):}
页:
[1]