背景: 我在Windows 7上,正在尝试自动执行一些与电子邮件相关的列表更新。我有 一个Python脚本,可接收电子邮件,下载某些附件并发回给我一封包含结果的新电子邮件。当我手动运行代码时,所有这些都很好用:
此处要清楚:以上述任何一种方式执行时,脚本都会成功检查电子邮件,解析附件并将包含所需信息的电子邮件发送给我自己。
问题: 当我尝试在本地PC上设置计划的任务(我具有管理员权限)以运行.bat文件时,脚本将在以下行终止:
#Grab an outlook COM
outlook_app = win32com.client.Dispatch("Outlook.Application")
outlook = outlook_app.GetNamespace("MAPI")
我知道这一点,因为我将脚本打印日志记录到一个单独的文本文件中。任务计划程序将执行批处理文件,我看到日志已写入文本文件以进行更早的步骤,但在这两行中均失败。
关于win32com
和任务计划程序我缺少什么吗?
答案 0 :(得分:0)
为了使用COM Interop运行任务,必须在用户登录后进行操作。
请参阅这些文章。
.net application failing when fired via scheduled task
Create a scheduled task that runs on particular user login using commandline
Office Interop run via Task Scheduler
A workaround for the fact that a scheduled task in Windows requires a user to be logged in