自动热键通过ComObject发送邮件

时间:2019-04-10 08:59:29

标签: outlook autohotkey taskscheduler comobject

问题: 我已经编写了一个脚本,通过ComObject发送邮件,当我将其用作用户时,它的工作原理像一个超级按钮,但是如果我使用Task Scheduler执行该脚本,它就不会起作用。


我做了什么?我已经将ComObjActive更改为ComObjCreate。


代码:

主体正确,并且包含HTML文本。

Myself = %AUMailAdress%
Recipient := Myself
Subject := Oi
Body := Ci
Recipient5 = Hidden@gmail.com

DocumentLocation = %SourceDir%\Tooloutput\AutoProjectsLog\Faults



olMailItem := 0
MailItem := ComObjCreate("Outlook.Application").CreateItem(olMailItem)
olFormatHTML := 2
MailItem.BodyFormat := olFormatHTML
MailItem.Subject := Subject
MailItem.HTMLBody := Body
Recipient := MailItem.Recipients.Add(Recipient)
Recipient.Type := 1 
Loop, %DocumentLocation%\*.*
MailItem.Attachments.Add(A_LoopFileLongPath)
MailItem.cc := Recipient5
MailItem.Send



ExitApp 
return

问题: 尝试制作ComObject时出现以下错误。

错误:0x80080005-服务器执行失败

行:#

---> 674:MailItem:= ComObjCreate(“ Outlook.Application”)。 CreateItem(olMailItem)

连续运行脚本吗?

1 个答案:

答案 0 :(得分:0)

我为此苦苦挣扎了大约3个小时,尝试了很多事情,包括这种方法:

MSDN Method | ",512"

最后,我以管理员身份运行Outlook,并且使用以下代码,所有程序都开始正常工作:

outlookApp := ComObjCreate("Outlook.Application")
MailItem := outlookApp.CreateItem(0)
MailItem.Display

系统:Windows 10 x64

Outlook 2019

AHK 1.1.33.02以管理员身份运行