| 🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝 🥰 博客首页:knighthood2001 😗 欢迎点赞👍评论🗨️ ❤️ 热爱python,期待与大家一同进步成长!!❤️ 最受欢迎专栏:UI自动化(uiautomation) |
目录
需求:通过剪切板实现将文本内容粘贴,实现发送。
实现过程如下
- import time
- import uiautomation as auto
- wechatWindow = auto.WindowControl(searchDepth=1, Name="微信", ClassName='WeChatMainWndForPC')
- # 有前提条件
- wechatWindow.SetActive()
- search = wechatWindow.EditControl(Name='搜索')
- edit = wechatWindow.EditControl(Name='输入')
- messages = wechatWindow.ListControl(Name='消息')
这里注意一下
# 有前提条件 wechatWindow.SetActive()
这段代码有前提条件,首先微信需要处在激活状态,然后才能将顶层窗口设置为活动状态

微信需要处在打开状态(而不是在最右边的)
- def search_object(name, wait_time=0.1):
- search.Click()
- # auto.SetClipboardText(name)
- # edit.SendKeys('{Ctrl}v')
- # 也可以使用下面的
- auto.SendKeys(name)
- # 等待一会,防止出错
- time.sleep(wait_time)
- search.SendKeys("{Enter}")
如上,输入聊天对象名称可以使用两种方法,一种
auto.SendKeys(name)
另一种则通过
- auto.SetClipboardText(name)
- edit.SendKeys('{Ctrl}v')
先复制内容到剪贴板,然后输入ctrl+v,粘贴。

- def send_message(content, message_type=1):
- if message_type == 1:
- # 文本类型
- auto.SetClipboardText(content)
- # 粘贴
- edit.SendKeys('{Ctrl}v')
- # 发送消息
- auto.SendKeys('{Enter}')
先定义一个函数,content参数为文本内容,message_type是发送消息类型。
auto.SetClipboardText(content)
该段代码表示,将文本复制到剪贴板
edit.SendKeys('{Ctrl}v')
接下来使用粘贴组合键即可将内容粘贴到聊天框。
粘贴文本功能你还可以使用下面的方法
edit.SendKeys(auto.GetClipboardText())

- elif message_type == 2:
- # 文本拆分发送
- text_split = list(content)
- for i in text_split:
- auto.SetClipboardText(i)
- edit.SendKeys('{Ctrl}v')
- # 发送消息
- auto.SendKeys('{Enter}')
message_type文本发送类型为2时,通过将我输入的整段文字拆分开,
content = '我在浙江很想你'
拆分成 ['我', '在', '浙', '江', '很', '想', '你'],然后遍历列表,依次发送。
将上述两个部分结合在一起,如下
- def send_message(content, message_type=1):
- if message_type == 1:
- # 文本类型
- auto.SetClipboardText(content)
- # 粘贴
- edit.SendKeys(auto.GetClipboardText())
- # 发送消息
- auto.SendKeys('{Enter}')
- elif message_type == 2:
- # 文本拆分发送
- text_split = list(content)
- print(text_split)
- for i in text_split:
- auto.SetClipboardText(i)
- edit.SendKeys('{Ctrl}v')
- # 发送消息
- auto.SendKeys('{Enter}')
- import time
- import uiautomation as auto
-
- wechatWindow = auto.WindowControl(searchDepth=1, Name="微信", ClassName='WeChatMainWndForPC')
- # 有前提条件
- wechatWindow.SetActive()
- search = wechatWindow.EditControl(Name='搜索')
- edit = wechatWindow.EditControl(Name='输入')
- messages = wechatWindow.ListControl(Name='消息')
-
- def search_object(name, wait_time=0.1):
- search.Click()
- # auto.SetClipboardText(name)
- # edit.SendKeys('{Ctrl}v')
- # 也可以使用下面的
- auto.SendKeys(name)
- # 等待一会,防止出错
- time.sleep(wait_time)
- search.SendKeys("{Enter}")
-
- def send_message(content, message_type=1):
- if message_type == 1:
- # 文本类型
- auto.SetClipboardText(content)
- # 粘贴
- edit.SendKeys(auto.GetClipboardText())
- # 发送消息
- auto.SendKeys('{Enter}')
- elif message_type == 2:
- # 文本拆分发送
- text_split = list(content)
- print(text_split)
- for i in text_split:
- auto.SetClipboardText(i)
- edit.SendKeys('{Ctrl}v')
- # 发送消息
- auto.SendKeys('{Enter}')
-
-
- if __name__ == '__main__':
- name = "小号"
- search_object(name)
- text = '我在浙江很想你'
- send_message(text, message_type=1)
- send_message(text, message_type=2)
运行结果如下

通过剪切板发送文本就介绍到这里了。后续更新批量发送图片。