侦听器是否需要自己的脚本



我一直在开发一个程序,它可以做两件事:

  1. 每秒截图一次
  2. 侦听单击(窗口(并记录单击的时间

以下是屏幕截图的代码:

def take_screenshot():
screenshot = pyautogui.screenshot()
screenshot_name = str(datetime.now())
screenshot_name = screenshot_name.replace(" ","")
screenshot_name = screenshot_name.replace(":","")
screenshot_name = screenshot_name.replace(".","")+".png"
screenshot.save(screenshot_name)
def main():
take_screenshot()
time.sleep(1)

效果很好。

以下是使用listener进行点击捕获的代码。我相信有很多不同的方法可以做到这一点,但到目前为止,这对我来说很好:

CLICKS = []
def capture_click(x,y,button,pressed):
if pressed:
CLICKS.append(datetime.now())
with Listener(on_click=capture_click) as listener:
listener.join()

正如你们中的一些人可能已经注意到的那样,我有一个问题。我看不出有任何方法可以将这些功能统一为一个主要功能。如果我将侦听器嵌套在主函数下,那么它会错过time.sleep((状态期间发生的单击。有没有办法将屏幕截图嵌套在侦听器下面,并将其限制为每秒拍摄一次屏幕截图?这段代码可能会扩展,我需要找到一种方法来拥有一个主函数,而不是同时运行两个python实例。

也许并行处理是答案,但我在多处理库中遇到了各种各样的错误。

我的工作如下所示:

def continous_screenshot():
while True:
take_screenshot()
with Listener(on_click = capture_click) as listener:
time.sleep(1)
continous_screenshot()
listener.join()

我相信你也可以做一些类型的多线程,但这要简单得多。

最新更新