Python脚本不会在任务计划程序中运行“运行是否登录使用”

时间:2013-03-05 22:06:42

标签: python automation task scheduler

我编写了一个python脚本,希望每天使用任务计划程序运行它。在创建此任务之前,我在注销时运行程序的任务计划程序没有任何问题。

如果我选择“仅在用户登录时运行”,我的脚本按预期运行,并带有所需的结果,并且没有错误代码(0x0)。

如果我选择“运行是否登录用户”并使用“以最高权限运行”,然后将其保留隔夜或注销以进行测试,则它不会执行任何操作,并且错误代码为0x1。

我有“启动程序”的操作,其详细信息如下:

程序/脚本:C:\ Python27 \ python2.7.exe 添加参数:“C:\ Users \ me \ Desktop \ test.py”

我认为这与注销时使用python的权限有关,但我无法想出这个。想知道是否有人对此有任何建议或经验。

这是在Windows 7上(fyi)

谢谢, JP

3 个答案:

答案 0 :(得分:2)

我想我找到了解决这个问题的方法。我的脚本用于创建一个powerpoint幻灯片,需要打开MS PPT。

我偶然发现了另一个论坛的帖子,其中包含了MS的政策链接。它基本归结为以下几点:

“Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会展示在此环境中运行Office时不稳定的行为和/或死锁。

使用“运行用户是否登录”选项运行计划任务时,从计划任务自动执行PowerPoint属于不受支持的方案。但是,使用“仅在用户登录时运行”选项属于受支持的类别。“

来自here

答案 1 :(得分:0)

我会尝试使用不在您的用户目录中的脚本

答案 2 :(得分:-1)

我有通过名为p3icli的C ++应用程序(在sourceforge上可用)在任务计划程序下支持PowerPoint自动化的经验。这是我成功使用的方法:

1)添加一个命令行(-T)开关,指示p3icli将在任务计划程序下运行。

2)命令行开关强制p3icli使用 CreateProcess()启动powerpnt.exe实例,然后等待X毫秒以使该实例稳定。

3)经过X毫秒后,p3icli连接到在步骤2中创建的正在运行的PPT实例并处理自动化命令。

我猜想类似的方法可以用于Python。

任务计划程序兼容性很容易成为我在p3icli中添加的最麻烦的功能。例如,通过更改活动窗口来操作多个演示文稿根本不起作用。正如我相信你已经发现的那样,调试问题根本就没什么乐趣。

注意:你的python解决方案必须包含强制PowerPoint在你的python脚本完成时无条件关闭的代码(模块化python崩溃)。否则,PowerPoint的孤立实例将出现在任务管理器中。

点击链接,了解p3icli point of view对任务计划程序的一些想法。