第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > python回复qq信息_python脚本实现QQ自动发送 回复消息机器人

python回复qq信息_python脚本实现QQ自动发送 回复消息机器人

时间:2020-11-03 14:17:31

相关推荐

python回复qq信息_python脚本实现QQ自动发送 回复消息机器人

作者:花花爱软件|公众号

先分享代码吧

===================================================================

import win32gui

import win32con

import win32clipboard as w

import time

def send(name, msg):

#打开剪贴板

w.OpenClipboard()

#清空剪贴板

w.EmptyClipboard()

#设置剪贴板内容

w.SetClipboardData(win32con.CF_UNICODETEXT, msg)

#获取剪贴板内容

date = w.GetClipboardData()

#关闭剪贴板

w.CloseClipboard()

#获取qq窗口句柄

handle = win32gui.FindWindow(None, name)

if handle == 0:

print('未找到窗口!')

#显示窗口

win32gui.ShowWindow(handle,win32con.SW_SHOW)

#把剪切板内容粘贴到qq窗口

win32gui.SendMessage(handle, win32con.WM_PASTE, 0, 0)

#按下后松开回车键,发送消息

win32gui.SendMessage(handle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)

win32gui.SendMessage(handle, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

time.sleep(2)#延缓进程

def main():

name = '某某'#QQ聊天窗口的名字

print('开始')

for i in range(1,5):

# send(name, '第'+str(i)+'次测试')

send(name,'你你你')

print('结束')

main()

===================================================================

代码结束!

调用的函数

1. win32clipboard.SetClipboardData(format, hMem)

作用

将数据以指定的剪贴板格式放在剪贴板上。窗口必须是当前剪贴板的所有者,应用程序必须先调用OpenClipboard函数。

参数

1、format:int

用来指定要放到剪切板中的数据的格式。其可以定义的格式如下:

CF_DIB ——DIB图片,它包含一个BITMAPINFO结构,然后是位图位。

CF_DIF ——软件领域的数据交换格式。

CF_PALETTE ——调色板。每当应用程序放置数据在剪贴板依赖于或承担的调色板,它应该在剪贴板上放置的调色板。

如果剪贴板中包含在CF_PALETTE(逻辑调色板)格式的数据,应用应该使用SelectPalette和RealizePalette的函数来实现(比较)针对该逻辑调色板剪贴板中的任何其他数据。

剪贴板显示剪贴板中的数据时,总是使用当前调色板的剪贴板是在CF_PALETTE格式的任何对象。

CF_PENDATA ——笔扩展的Microsoft笔计算的数据。

CF_RIFF ——表示更复杂的音频数据可以被表示为一个CF_WAVE的标准波形格式。

CF_SYLK ——微软符号链接(SYLK)格式。

CF_TEXT ——ANSI文本格式。回车/换行(CR-LF)组合表示换行。必须用NULL结束字符串。使用此格式为ANSI文本。

CF_WAVE ——表示在的标准电波格式之一,例如11 kHz或22kHz的脉冲编码调制(PCM)的音频数据。

CF_TIFF ——TIFF标记图像文件格式。

CF_UNICODETEXT ——Unicode文本格式。回车/换行(CR-LF)组合表示换行。必须用NULL结束字符串。这是Unicode格式的字符串。

2、hMem:int/buffer

指定格式的数据、字符串、unicode或任何支持缓冲区接口的对象的整数句柄。分配一个全局内存对象,并将该对象的缓冲区复制到新内存中。此参数可以为0,表示窗口在请求时提供指定剪贴板格式的数据(呈现格式)。

返回值

如果函数成功,返回的值是数据的int型句柄。

如果函数失败,则使用GetLastError信息引发win32api.error 。

2. win32gui.FindWindow(ClassName, WindowName)

作用

检索类名和窗口名匹配指定字符串的顶级窗口的句柄。ClassName参数指向类名,WindowName指向窗口名,如果有指定的类名和窗口名则表示成功返回一个窗口的句柄。否则返回零。

参数

1、ClassName:PyResourceId

指向一个用来指定类名的字符串或一个可以确定类名字符串的原子。如果该参数为None时,将会寻找任何与WindowName参数匹配的窗口。

2、WindowName:string

指向一个用来指定窗口名(即窗口标题)的字符串。如果此参数为None,则匹配所有窗口名。

返回值

如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。

如果函数执行失败,则返回值为 NULL 。可以通过调用GetLastError函数获得更加详细的错误信息。

3. win32gui.ShowWindow(hWnd, cmdShow)

作用

显示或隐藏窗口并更改其状态。

参数

1、hWnd:int

指窗口句柄。

2、cmdShow:int

指定窗口如何显示。如果发送应用程序的程序提供了STARTUPINFO结构,则应用程序第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中cmdShow参数。在随后的调用中,该参数可以为下列值之一:

SW_FORCEMINIMIZE:在WindowNT5.0中最小化窗口,即使拥有窗口的线程被挂起也会最小化。在从其他线程最小化窗口时才使用这个参数。cmdShow=11。

SW_HIDE:隐藏窗口并激活其他窗口。cmdShow=0。

SW_MAXIMIZE:最大化指定的窗口。cmdShow=3。

SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。cmdShow=6。

SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。cmdShow=9。

SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。cmdShow=5。

SW_SHOWDEFAULT:依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态,STARTUPINFO 结构是由启动应用程序的程序传递给CreateProcess函数的。cmdShow=10。

SW_SHOWMAXIMIZED:激活窗口并将其最大化。cmdShow=3。

SW_SHOWMINIMIZED:激活窗口并将其最小化。cmdShow=2。

SW_SHOWMINNOACTIVE:窗口最小化,激活窗口仍然维持激活状态。cmdShow=7。

SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。cmdShow=8。

SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。cmdShow=4。

SW_SHOWNORMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。cmdShow=1。

返回值

如果窗口之前可见,则返回值为非零。如果窗口之前被隐藏,则返回值为零。

4. win32gui.SendMessage(hwnd, message , wparam , lparam)

作用

该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而和函数PostMessage不同,PostMessage是将一个消息寄送到一个线程的消息队列后就立即返回。

参数

1、hwnd:int

指定要接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。

2、Msg:int

指定被发送的消息。

3、wparam:int/str

指定附加的消息特定信息。

4、Iparam:int/str

指定附加的消息特定信息。

具体的参数取值可以参考一下百度百科的内容:/item/SendMessage/6374103?fr=aladdin

返回值

返回值指定消息处理的结果,依赖于所发送的消息。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。