python - 定时拍照并发送到qq

写在前面

前两天发生一些恶心的事,突然想用python实现自动拍照的功能间接起到监控的作用。
网上搜了各种资料,整理如下。

代码

from VideoCapture import Device
from PIL import  Image
from ctypes import *
import os, time, win32gui, win32con, win32clipboard as w
# 获取剪贴板的文本
def getText():
    w.OpenClipboard()
    d = w.GetClipboardData(win32con.CF_UNICODETEXT)
    w.CloseClipboard()
    return d
# 设置剪贴板的内容
def setText(content):
    w.OpenClipboard()
    w.EmptyClipboard()
    #w.SetClipboardData(win32con.CF_UNICODETEXT, content)
    w.SetClipboardData(win32con.CF_BITMAP, content)
    w.CloseClipboard()
# 发送QQ消息
def send_qq(to_who, msg):
    setText(msg)
    # 获取qq窗口句柄
    qq = win32gui.FindWindow(None, to_who)
    # 把剪贴板内容发送到qq窗口
    win32gui.SendMessage(qq, 258, 22, 2080193)
    win32gui.SendMessage(qq, 770, 0, 0)
    # 回车
    win32gui.SendMessage(qq, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
    win32gui.SendMessage(qq, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

# 打开一个qq窗口,不能最小化,可以拉到一边
# 昵称
to_who = "XXX"
cam = Device()
# 模板的demo里面没有quality这个参数,但是时间运行要加上
while (1):
    # 文件夹中保存的照片数量
    for i in range(10):
        s = str(i) + '.jpg'
        s2 = "b" + str(i) + ".bmp"
        cam.saveSnapshot(s, timestamp=3, boldfont=1, quality=75)
        # 设置频率
        time.sleep(2)
        img = Image.open(s)
        img.save(s2)
        msg = windll.user32.LoadImageW(0, s2, win32con.IMAGE_BITMAP, 0, 0, win32con.LR_LOADFROMFILE)
        send_qq(to_who, msg)

猜你喜欢

转载自blog.csdn.net/henuyh/article/details/80699892