import time,sys
import psutil
from pywinauto.application import Application
from time import sleep
from pywinauto import mouse
from pywinauto.keyboard import send_keys
from pywinauto import keyboard
# 常用方式一:连接已有微信进程(进程号在 任务管理器-详细信息 可以查看)
def GetWeChatPID(name):
# 获得全部进程的ID
# pids=psutil.pids()
pids = psutil.process_iter()
# 遍历全部进程ID
for pid in pids:
if(pid.name()==name):
# 输出进程ID
return pid.pid
# 没有找到则输出0
return print('请打开微信')
pid = GetWeChatPID('WeChat.exe')
app = Application(backend='uia').connect(process=pid)
win_main_Dialog = app.window(class_name='WeChatMainWndForPC')
# 判断是否为dialog,一个微信是一个dialog,就是窗口
print(win_main_Dialog.is_dialog)
# 给控件画个红色框便于看出是哪个
#win_main_Dialog.draw_outline(colour = 'red')
# 打印当前窗口的所有controller(控件和属性)
#win_main_Dialog. print_control_identifiers(depth=None, filename=None)
#aa=win_main_Dialog.control_identifiers(depth=None, filename=None)
# 源码内部函数名链式赋值了,都能用,一样的
# print_ctrl_ids = dump_tree = print_control_identifiers
# 拿到微信主窗口
win_main_Dialog = app.window(class_name='WeChatMainWndForPC')
#win_main_Dialog1 = app.window(found_index=0,class_name='WeChatMainWndForPC').type_keys('~')
win = app[u'微信']
# 将窗口最大化
#win.maximize()
for ii in range(100):
try:
btn_return = win_main_Dialog.child_window(control_type='Button',found_index=ii).parent().descendants(control_type='Button')
except:
break
for i in btn_return:
print(ii,i)