2016-04-29 51 views
0

我將Outlook msg文件轉換爲html文件。到目前爲止,我有:使用vbscript將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將打開該腳本的持續時間。

有人能請我正確的方向嗎?謝謝!

回答

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 
0

我會創建一個Outlook實例,無論它是否打開。這應該有幫助:Run program minimized。確保查看答案中的文檔鏈接以獲取所有參數選項。