在用户登录并锁定桌面的情况下,如何使用任务调度程序从C#Interop/COM程序自动执行Word 2013
本文关键字:COM C#Interop 程序 2013 Word 执行 任务调度程序 何使用 锁定 登录 用户 | 更新日期: 2023-09-27 17:58:10
我继承了一个C#程序,该程序用于使用PDFCreator 1.2.3、MapInfo Professional 11、Word 2003和Excel 2003在Windows XP Pro SP3上自动创建每日报告。这台Win XP机器位于Active Directory域中,C#程序以域用户(具有管理权限)的身份运行,用户已登录,桌面已锁定。Word 2003可以自动打开模板、根据模板创建文档和保存文档——所有这些都来自网络共享。Excel 2003用于打开一个带有链接到ODBC数据源的表的电子表格,并刷新该表,将新数据拉入电子表格。MapInfo用于从ODBC数据源生成地图图像。PDFCreator被用来获取电子表格、word文档和图像,并将它们组合成一份每日报告。
由于XP已经到了生命的尽头,我已经将此程序移到了Win 8.1 EE虚拟机(在同一域中),并安装了Office 365产品(Word 2013和Excel 2013)以及PDFCreator 1.7.1和MapInfo Professional 12,用于自动创建此日报。当在新虚拟机上手动运行时,此程序正常工作,但当以与计划任务相同的用户身份运行时会失败。此计划任务设置为使用最高权限运行,并且在用户未登录时运行。
我意识到这里有很多变量在起作用;O/S必须更改,我们不再使用旧版本的Office,我也无法获得旧版本的PDFCreator或MapInfo。因此,我将把问题集中在我能控制的事情上。我知道我在做这件事时面临的问题,但考虑到我被要求尝试使用的新O/S和应用程序(即Word 2013和Excel 2013),我不清楚现在是否真的可以做到这一点。
因此,问题是:如何在用户登录且桌面锁定的情况下,使用任务调度程序从C#Interop/COM程序自动运行Word 2013?
来自Microsoft文档-Office服务器端自动化的注意事项:
所有当前版本的Microsoft Office都经过了设计、测试和配置为作为最终用户产品在客户端工作站上运行。他们假设一个交互式桌面和用户配置文件。他们不提供满足设计为无人值守运行的服务器端组件的需求。
Microsoft目前不建议也不支持,从任何无人值守、,非交互式客户端应用程序或组件(包括ASP,ASP.NET、DCOM和NT服务),因为Office可能表现出不稳定Office在此环境中运行时的行为和/或死锁
我知道它不能回答有关Office 365的问题,但我认为这是最接近的。我还发现了这篇文章:HOWTO:将Office应用程序配置为在交互式用户帐户下运行。
我发现,答案是,像这样的任务在Windows XP Pro SP3上运行时,选择以管理员身份运行以及无论是否登录都运行,在Windows 8.1 EE下都无法与相同的任务/用户/权限一起使用。
任务已成功运行,但未选择"以管理员身份运行"answers"未登录时运行"选项。
对于任何从Win XP迁移旧程序/任务的人,因为它们因使用寿命终止而停用,您可能需要尝试在新版本的Windows任务计划程序中删除该任务上的"以管理员身份运行"answers"未登录时运行"选项。