电脑版微信每天自动发送

1.电脑24小时不关机,微信一直在线,将发送对象激活成单独窗口,并将任务栏图标置于第一格的位置,如下:

横坐标约190左右。

2.编写程序代码。(附后)

3.将代码打包成exe.

4.设定计划任务。

搞定。

附代码:

# coding = utf-8
import win32api,win32gui,win32con
import win32clipboard as clipboard
import time
from PIL import Image
from io import BytesIO #python3,新增字节流
import requests

###############################
#  微信发送(文本及图片)
###############################

#定义指定图片文件复制到剪贴板函数##########
def pic_ctrl_c(pathfile):
    img = Image.open(pathfile)
    output = BytesIO()#如是StringIO分引起TypeError: string argument expected, got 'bytes'
    img.convert("RGB").save(output, "BMP")# 以BMP格式保存流
    data = output.getvalue()[14:]#bmp文件头14个字节丢弃
    output.close()
    clipboard.OpenClipboard() #打开剪贴板
    clipboard.EmptyClipboard()  #先清空剪贴板
    clipboard.SetClipboardData(win32con.CF_DIB, data)  #将图片放入剪贴板
    clipboard.CloseClipboard()
    return

def send_m():
    # 以下为“CTRL+V”组合键,回车发送,(方法一)
    win32api.keybd_event(17, 0, 0, 0)  # 有效,按下CTRL
    time.sleep(1)  # 需要延时
    win32gui.SendMessage(win, win32con.WM_KEYDOWN, 86, 0)  # V
    win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)  # 放开CTRL
    time.sleep(1)  # 缓冲时间
    win32gui.SendMessage(win, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)  # 回车发送
    return

def txt_ctrl_v(txt_str):
    #定义文本信息,将信息缓存入剪贴板
    clipboard.OpenClipboard()
    clipboard.EmptyClipboard()
    clipboard.SetClipboardData(win32con.CF_UNICODETEXT,txt_str)
    clipboard.CloseClipboard()
    return

def day_english():
    #获取金山词霸每日一句
    url = 'http://open.iciba.com/dsapi'
    r = requests.get(url)
    content = r.json()['content']
    note = r.json()['note']
    print(content+note)
    return  content+note

#######################发送过程=================
#查找微信窗口,如果最小化则还原(需要固定位置)
title_name='马云大哥'#单独打开,好友名称
win = win32gui.FindWindow('ChatWnd',title_name)
print("找到句柄:%x" % win)
if win!=0:
    left, top, right, bottom = win32gui.GetWindowRect(win)
    print(left, top, right, bottom)#最小化为负数
    #
    #最小化时点击还原,下面为单个窗口
    if top<0:
        #鼠标点击,还原窗口
        win32api.SetCursorPos([190, 1040])  # 鼠标定位到(190,1040)
        # 执行左单键击,若需要双击则延时几毫秒再点击一次即可
        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
        ######点击完成一次
    time.sleep(0.5)
    left, top, right, bottom = win32gui.GetWindowRect(win)#取数
    #
    #最小时点击还原窗口,下面一节为多个窗口,依次点击打开。
    k=1040#最小化后的纵坐标,横坐标约为190
    while top<0 and k>800:#并设定最多6次,防止死循环
        time.sleep(1)
        win32api.SetCursorPos([180, k-40])  # 鼠标定位菜单第一个
        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
        ######点击完成一次
        time.sleep(1)#等待窗口出现
        left, top, right, bottom = win32gui.GetWindowRect(win)#取数
        if top>0 :#判断是否还原
            break
        else:
            k-=40#菜单上移一格
            win32api.SetCursorPos([190, 1040])  # 重新打开菜单
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    win32gui.SetForegroundWindow(win)#获取控制
    time.sleep(0.5)
else:
    print('请注意:找不到【%s】这个人(或群),请激活窗口!'%title_name)
#
##开始发送图片
pic_ctrl_c('D:/2018bigdata/jz2018tv.png')#第一张图片
time.sleep(1)
send_m()
pic_ctrl_c('D:/2018bigdata/jz2018.png')#第二张图片
time.sleep(1)
send_m()
pic_ctrl_c('D:/2018bigdata/jz2018net.png')#第三张图片
time.sleep(1)
send_m()
#开始发送文本
str=day_english()
txt_ctrl_v(str)
send_m()
#
#############################微信发送结束================

#############################其它备注====================
#
# #模拟键盘CTRL+V,方法二
# keyboard.press(Key.ctrl)
# keyboard.press('v')#大写不行列
# keyboard.release('v')
# keyboard.release(Key.ctrl)
#
##鼠标操作可忽略
# in_xy=[right-50,bottom-50]
# win32api.SetCursorPos(in_xy)
# mouse.press(Button.left)
# mouse.release(Button.left)
#
#from pynput.mouse import Button, Controller as mController
#from pynput.keyboard import Key, Controller as kController
#mouse = mController()
#keyboard = kController()
#print(type(keyboard))
# keyboard.type(str1) # 发送消息,需要pip install pynput
# time.sleep(1)#缓冲时间
#
# title_name='微信'#这个不分对象,瞎发。
# win = win32gui.FindWindow('WeChatMainWndForPC',title_name)


 

 

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值