我将Outlook msg文件转换为html文件。到目前为止,我有:
Dim objshell,BaseName,outlookapp,emailPath
Set objshell= CreateObject("scripting.filesystemobject")
Set outlookapp = CreateObject("Outlook.Application")
Set email = outlookapp.CreateItemFromTemplate(emailPath)
emailPath = "C:\Users\makkerman\Desktop\email folder\test.msg"
BaseName = objshell.GetBaseName(emailPath)
email.saveas objshell.GetParentFolderName(emailPath) & "\" & BaseName & ".html", 5
outlookapp.Quit
我希望在后台运行(不会打扰运行它的用户)。我是否必须启动Outlook流程?目前看来,如果用户打开了Outlook,那么上面的脚本会关闭Outlook,我可以理解为什么(outlookapp.Quit)。如果在运行脚本时Outlook未打开,Outlook将打开脚本的持续时间。
有人可以向我推正正确的方向吗?谢谢!
答案 0 :(得分:1)
为什么需要调用Application.Quit?如果Outlook正在运行,它将继续运行。如果它没有运行,Outlook将在您取消引用所有Outlook对象时自行关闭 - 请记住,Outlook是单例,CreateObject将连接到已经运行的实例;你没有得到一个全新的过程。
如果您不想使用Outlook,可以使用Redemption(它无法启动Outlook):
set Session = CreateObject("Redemption.RDOSession")
set Msg = Session.GetMessageFromMsgFile("c:\temp\test.msg")
Msg.SaveAs "c:\temp\test.html", 5
答案 1 :(得分:0)
我会创建一个Outlook实例,无论它是否打开。这应该有所帮助:Run program minimized。请务必查看答案中的文档链接以获取所有参数选项。