如何使用 Python Win32com 创建每 5 秒运行一次的计划任务?
How do I create a scheduled task using Python Win32com that runs every 5 seconds?
我正在尝试使用 Win32com 在 Python 中创建计划任务。我能够创建每日触发器。但是,我找不到每 5 秒或每分钟创建一次触发器的方法。有人对如何做到这一点有任何指示吗?
创建计划或计时器不需要 pywin32。使用以下内容:
import threading
def screenshot():
#pywin32 code here
print ("Test")
def starttimer():
threading.Timer(1.0, starttimer).start()
screenshot()
starttimer()
使用pywin32进行截图等
如评论中所述,如果您想以这种频率做事,最好让您的程序永远 运行 并自行安排时间。
与@Barmak Shemirani 的回答类似,但没有生成线程:
import time
def screenshot():
# do your screenshot...
interval = 5.
target_time = time.monotonic() + interval
while True:
screenshot()
delay = target_time - time.monotonic()
if delay > 0.:
time.sleep(delay)
target_time += interval
或者,如果您的屏幕截图足够快并且您并不真正关心精确的时间:
while True:
screenshot()
time.sleep(interval)
如果您希望从系统启动时 运行,您必须 make it a service,并相应地更改退出条件。
我正在尝试使用 Win32com 在 Python 中创建计划任务。我能够创建每日触发器。但是,我找不到每 5 秒或每分钟创建一次触发器的方法。有人对如何做到这一点有任何指示吗?
创建计划或计时器不需要 pywin32。使用以下内容:
import threading
def screenshot():
#pywin32 code here
print ("Test")
def starttimer():
threading.Timer(1.0, starttimer).start()
screenshot()
starttimer()
使用pywin32进行截图等
如评论中所述,如果您想以这种频率做事,最好让您的程序永远 运行 并自行安排时间。
与@Barmak Shemirani 的回答类似,但没有生成线程:
import time
def screenshot():
# do your screenshot...
interval = 5.
target_time = time.monotonic() + interval
while True:
screenshot()
delay = target_time - time.monotonic()
if delay > 0.:
time.sleep(delay)
target_time += interval
或者,如果您的屏幕截图足够快并且您并不真正关心精确的时间:
while True:
screenshot()
time.sleep(interval)
如果您希望从系统启动时 运行,您必须 make it a service,并相应地更改退出条件。