Сделать снимки экрана наугад интервалы с Python?

Я работаю над проектом сделать снимки экрана рабочего стола и изображения загрузки к серверу, я хочу разработать приложение Python, когда пользователь запустит то приложение, это начнет делать снимки экрана в случайном интервале как между 2-5 минутами интервала, у меня есть код, который сделает снимок экрана, и я протестировал его на человечности, это работает правильно. Код для получения снимка экрана

import gtk.gdk
import time

w = gtk.gdk.get_default_root_window()
sz = w.get_size()
print "The size of the window is %d x %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 минут, как я могу разработать сценарий, который выполнит этот код в потоке.

5
задан 30 September 2013 в 14:20

2 ответа

#!/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 %d x %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."
4
ответ дан 30 September 2013 в 14:20

Я бы соблазнился передать это во внешнюю библиотеку, такую ​​как PyScreenshot .

Пусть он справится с тяжелой работой (например, определит, какой DM и экранный API ему нужен), предоставляя вам изображение PIL, которое вы можете сохранить на диск или вывести в виде файла для загрузки.

Существует множество ответов , которые делают это вручную при переполнении стека , если вы настроены на «сделай сам».


Что касается интервала, нужно ли это нарезать? Может ли сценарий не просто работать сам по себе, а затем после того, как он сделал снимок, спать в течение произвольного периода времени (от 120 до 300 секунд)?

import random
import time

time.sleep(random.randrange(120, 300))
0
ответ дан 30 September 2013 в 14:20

Другие вопросы по тегам:

Похожие вопросы: