from uiautomation import WindowControl, MenuControl import re import numpy as np wx = WindowControl(Name='微信') wx.SwitchToThisWindow() hw = wx.ListControl(Name='会话') print('寻找会话控制绑定', hw) # 定义包含数字的列表 numbers = [1234567890, 20000000000, 30000000000] while True: we = hw.TextControl(searchDepth=4) while not we.Exists(8): pass print('查找未读消息', we) if we.Name: we.Click(simulateMove=False) messages = wx.ListControl(Name='消息').GetChildren() # 遍历每个消息控件,获取消息内容并进行处理 for message in messages: last_msg = message.Name print('读取消息', last_msg) new_numbers = [] # 使用正则表达式匹配符合条件的数字 for num in re.findall(r'\b\d{11}\b', last_msg): if int(num) > 10000000000 and int(num) < 20000000000: new_numbers.append(int(num)) # 输出符合条件的数字 print('符合条件的数字:', new_numbers) index = 0 # 使用pop()函数提取并删除指定索引的元素 for num in new_numbers: list1 = num print(list1) wx.SendKeys(list1[0].replace('{br}', '{Shift}{Enter}'), waitTime=0) wx.SendKeys('{Enter}', waitTime=0) wx.TextControl(SubName=list1[0][:5]).RightClick() 看一下为什么后面的循环不行
时间: 2024-01-09 20:06:10 浏览: 110
uiautomation模块源码
根据你的代码,我发现在最后一个循环中,你使用了`list1[0]`来代表数字,但是`list1`是一个整数类型的变量,而不是一个列表类型,所以会报错。你可以将`list1`改成`new_numbers`,这样就可以正确地遍历数字列表并执行后续的操作了。你可以尝试修改代码如下:
```
index = 0
for num in new_numbers:
print(num)
wx.SendKeys(str(num).replace('{br}', '{Shift}{Enter}'), waitTime=0)
wx.SendKeys('{Enter}', waitTime=0)
wx.TextControl(SubName=str(num)[:5]).RightClick()
```
希望能够帮到你!
阅读全文