gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 10:49:47 26 4
gpt4 key购买 nike

这是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com