qq自动搜索好友并发送信息

qq自动搜索好友并发送信息

  • 1.将鼠标移动至qq搜索框并点击
  • 2.将需要搜所得备注复制进剪切板
  • 3.模拟键盘输入ctrl+v
  • 4.模拟回车
  • 5.模拟alt+s发送信息
  • 6.代码

1.将鼠标移动至qq搜索框并点击

'''通过spy++拿到应用程序主窗口的类名和窗口标题'''
mainHnd = win32gui.FindWindow('TXGuiFoundation', 'QQ')
'''根据GetWindowRect拿到主窗口的左顶点的位置坐标(x,y)和窗口的宽高(w*h)'''

rect = win32gui.GetWindowRect(mainHnd)
print(rect)
x, y = rect[0], rect[1]
x=x+100
y=y+130

m = PyMouse()
m.move(x, y)  # 鼠标移动到(x,y)位置杨光柱
m.click(x, y)  # 移动并且在(x,y)位置左击

首先定位到qq界面并拿到左上角的坐标
然后通过多次实验我们得到输入框和左上角坐标的像素距离
m.move(x, y)将鼠标移动到输入框
m.click(x, y) 点击鼠标

2.将需要搜所得备注复制进剪切板

def cc(data):
    # 打开复制粘贴板
    wcb.OpenClipboard()
    # 我们之前可能已经Ctrl+C了,这里是清空目前Ctrl+C复制的内容。但是经过测试,这一步即使没有也无所谓
    wcb.EmptyClipboard()
    # 将内容写入复制粘贴板,第一个参数win32con.CF_TEXT不用管,我也不知道它是干什么的
    # 关键第二个参数,就是我们要复制的内容,一定要传入字节
    wcb.SetClipboardData(wc.CF_TEXT, data.encode("gbk"))
    #data = wcb.GetClipboardData(wc.CF_TEXT)
    # 关闭复制粘贴板
    wcb.CloseClipboard()

将所需的内容传入函数此时内容以复制进剪切板只需ctrl+v即可粘贴

3.模拟键盘输入ctrl+v

def cv():
    win32api.keybd_event(17, 0, 0, 0)  # Ctrl
    win32api.keybd_event(86, 0, 0, 0)  # V
    win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放指令
    win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)

使用win32api来模拟键盘输入

4.模拟回车

win32api.keybd_event(13, 0, 0, 0)    #回车
win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)   #释放指令

5.模拟alt+s发送信息

win32api.keybd_event(18, 0, 0, 0)    #alt
win32api.keybd_event(83, 0, 0, 0)    #S
win32api.keybd_event(83, 0, win32con.KEYEVENTF_KEYUP, 0)   #释放指令
win32api.keybd_event(18, 0, win32con.KEYEVENTF_KEYUP, 0)

6.代码

import win32api
import win32gui
import win32con
import time
import win32clipboard as wcb

import win32con as wc
from pymouse import PyMouse


def cc(data):
    # 打开复制粘贴板

    wcb.OpenClipboard()

    # 我们之前可能已经Ctrl+C了,这里是清空目前Ctrl+C复制的内容。但是经过测试,这一步即使没有也无所谓

    wcb.EmptyClipboard()

    # 将内容写入复制粘贴板,第一个参数win32con.CF_TEXT不用管,我也不知道它是干什么的

    # 关键第二个参数,就是我们要复制的内容,一定要传入字节

    wcb.SetClipboardData(wc.CF_TEXT, data.encode("gbk"))

    #data = wcb.GetClipboardData(wc.CF_TEXT)
    # 关闭复制粘贴板

    wcb.CloseClipboard()
    time.sleep(1)

def cv():
    win32api.keybd_event(17, 0, 0, 0)  # Ctrl
    win32api.keybd_event(86, 0, 0, 0)  # V
    win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放指令
    win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
    time.sleep(1)





'''通过spy++拿到应用程序主窗口的类名和窗口标题'''
mainHnd = win32gui.FindWindow('TXGuiFoundation', 'QQ')
'''根据GetWindowRect拿到主窗口的左顶点的位置坐标(x,y)和窗口的宽高(w*h)'''

rect = win32gui.GetWindowRect(mainHnd)
print(rect)
x, y = rect[0], rect[1]
x=x+100
y=y+130
m = PyMouse()
m.move(x, y)  # 鼠标移动到(x,y)位置杨光柱
m.click(x, y)  # 移动并且在(x,y)位置左击
time.sleep(1)
name=input('备注名')
cc(name)
cv()
win32api.keybd_event(13, 0, 0, 0)    #回车
win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)   #释放指令
time.sleep(0.5)
data=input('内容')
cc(data)
cv()
win32api.keybd_event(18, 0, 0, 0)    #alt
win32api.keybd_event(83, 0, 0, 0)    #S
win32api.keybd_event(83, 0, win32con.KEYEVENTF_KEYUP, 0)   #释放指令
win32api.keybd_event(18, 0, win32con.KEYEVENTF_KEYUP, 0)

你可能感兴趣的:(python)