python - Windows 7/Vista 进程管理 - 如何在长时间空闲后启动外部程序?

标签 python windows winapi windows-7 process

这是 that 的后续行动问题。

基本上,我有一个 python 脚本,它应该在大约 2-6 小时后通过计时器启动另一个程序 (.exe)。只要我用短暂的倒计时测试它,或者只要计算机在计时器到期之前“激活”(=之前的用户输入,屏幕打开)或者只要没有其他程序同时工作(一个在我的例子中是 Excel VBA 脚本)。

在 Windows 7 上,对于长时间倒计时和运行 Excel,外部程序无法打开。没有任何错误消息和任何其他(python 内部)命令在按应有的方式执行之后。

我正在使用 x=subprocess.Popen([program,args],flags) 命令并尝试了几乎所有可能的标志(Shell、buffersize、creationflags、stdout 等.) 和备选方案(调用),但它的行为始终如上所述。

现在我在尝试通过 VBA 打开外部程序时注意到类似的行为,所以我不认为它是特定于 Python 的问题,而是特定于 Windows 的问题。此外,我在另一台装有 Windows Vista 的 PC 上试过它,结果令人惊讶(如果重要的话,都是 64 位)。

我已经尝试通过 SetThreadExecutionState 提高进程优先级或防止空闲状态并禁用了我知道的所有节能功能,但到目前为止没有任何改变。

有人有想法吗?非常感谢,我慢慢地感到沮丧......

最佳答案

考虑到 Here 中所述的问题后,我认为一个可行的选择是 使用许多短暂停而不是长暂停,因此程序始终处于事件状态,但可能会导致更高的内存使用量。

def wait(sec,sleeptime = 0):
    import time
    endsecs = time.time() + sec
    while True:
        if endsecs <= time.time():
            return None
        if sleeptime != 0:
            time.sleep(sleeptime)

只是猜测,没有什么确定的,没时间验证。

关于python - Windows 7/Vista 进程管理 - 如何在长时间空闲后启动外部程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9123165/

相关文章:

python - 通过代码上传图片时,Django 媒体上传不起作用

python - 我如何弄清楚为什么 Python 在 Windows 7 64 位中抛出这个非描述性错误

windows - 如何避免 bzr+ssh ://myserver/C:\mydir? 中的物理路径

.net - 最小化文本 block 的大小

c++ - 使用 C++ 读取文件夹中的所有文件,包括子文件夹中的文件

c++ - C++中的鼠标光标在加载时不改变

python - 在 python etree 中对 XML 进行排序

python - 有没有办法将标记文本添加到 pyqt 中的变量中?

windows - 创建 QEmu guest 操作系统的 WinDbg 可读转储

c# - 如何以编程方式创建用户配置文件