使用Python以随机间隔截取屏幕截图?

我正在开发一个项目来截取桌面的截图并将图像上传到我想要开发python应用程序的服务器,当用户启动该应用程序时,它将开始以随机间隔截取屏幕截图,如间隔2-5分钟我有代码这将采取截图,我已经在ubuntu上测试了它正常工作。 捕获屏幕截图的代码

import gtk.gdk import time w = gtk.gdk.get_default_root_window() sz = w.get_size() print "The size of the window is %dx %d" % sz pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1]) pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1]) ts = time.time() filename = "screenshot" filename += str(ts) filename += ".png" if (pb != None): pb.save(filename,"png") print "Screenshot saved to "+filename else: print "Unable to get the screenshot." 

我想以2-5分钟的随机间隔运行此代码,我如何开发一个将在线程中运行此代码的脚本。

 #!/usr/bin/env python import gtk.gdk import time import random while 1 : # generate a random time between 120 and 300 sec random_time = random.randrange(120,300) # wait between 120 and 300 seconds (or between 2 and 5 minutes) print "Next picture in: %.2f minutes" % (float(random_time) / 60) time.sleep(random_time) w = gtk.gdk.get_default_root_window() sz = w.get_size() print "The size of the window is %dx %d" % sz pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1]) pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1]) ts = time.time() filename = "screenshot" filename += str(ts) filename += ".png" if (pb != None): pb.save(filename,"png") print "Screenshot saved to "+filename else: print "Unable to get the screenshot." 

我很想将这种方式转移到像PyScreenshot这样的外部库中。

让它处理繁重的工作(比如计算出它需要的DM和屏幕API),为您留下一个PIL映像,您可以将其保存到磁盘或作为上载流出。

如果您决定DIY,那么在Stack Overflow上手动执行此操作会有很多答案。


至于间隔,这是否必须是线程? 脚本不仅可以自行运行,然后在拍摄快照后,可以随机hibernate一段时间(120到300秒之间)吗?

 import random import time time.sleep(random.randrange(120, 300))