我目前正在开发一个脚本,它可以获取Word文档,在Word中打开它,然后将Word文件打印为PDF。在我的机器或服务器上手动运行时,一切都很有效。当我尝试将其作为计划任务运行时,问题就出现了。
其中一项要求是,应该在夜间进行,无需任何干预。当我设置一个计划任务来执行此操作并将安全选项设置为“仅在用户登录时运行”一切正常。问题是,这必须在有人登录或不登录的情况下运行。如果我将任务设置为“运行用户是否登录”,则脚本将在以下行中失败:
wordDoc = MSWord.Documents.Open(ref fileToConvert, ref refFalse, ref refTrue,
ref RN, ref RN, ref RN, ref RN, ref RN,
ref RN, ref RN, ref RN, ref RN, ref RN,
ref RN, ref RN, ref RN);
MSWord.Documents.Open()
有效,但返回null。
此任务在带有Office 2007的Windows Server 2008上运行。
我应该采取另一种方法吗?
答案 0 :(得分:22)
我在使用Windows Server 2008下的Windows服务自动化Office时遇到了问题,即使在Windows Server 2003下工作正常。问题也出现在Open调用中,尽管它实际上引发了异常而不是简单地返回null。无论如何,你可能想试试这个......
我尝试遵循H小川在this MSDN thread中给出的建议,似乎有效。这很奇怪,但对小川先生的发现感到很荣幸。
'Ogawa Hack'的摘要:为系统配置文件创建一个桌面文件夹,为
C:\Windows\SysWOW64\config\systemprofile\Desktop
或
C:\Windows\System32\config\systemprofile\Desktop
...取决于您是否拥有64位Windows。
此外,该文件夹需要对任何“驱动”Office的用户具有写入权限。
[编辑:更正的链接网址]
答案 1 :(得分:4)