# -- coding: utf-8 --
# by 黑洞没有脑洞大
import sys
import win32gui
import win32ui
import win32con
#TODO 获取所有窗口句柄
def get_all_windows():
hWnd_list = []
win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd), hWnd_list)
# print(hWnd_list)
return hWnd_list
#TODO 获取指定窗口的子句柄
def get_son_windows(parent):
hWnd_child_list = []
win32gui.EnumChildWindows(parent, lambda hWnd, param: param.append(hWnd), hWnd_child_list)
# print(hWnd_child_list)
return hWnd_child_list
#TODO 获取指定窗口的标题
def get_title(hwnd):
title = win32gui.GetWindowText(hwnd)
# print(f'窗口标题:{title}')
return title
#TODO 获取指定窗口的类名
def get_clasname(hwnd):
clasname = win32gui.GetClassName(hwnd)
# print(f'窗口类名:{clasname}')
return clasname
#TODO 根据窗口名称获取句柄
def get_hwnd_from_name(name):
hWnd_list = get_all_windows()
for hwd in hWnd_list:
title = get_title(hwd)
if title == name:
return hwd
#TODO 根据句柄获取内容
def get_window_text(handle):
buffer = '0' *50
length = win32gui.SendMessage(handle, win32con.WM_GETTEXTLENGTH) + 1
text = win32gui.SendMessage(handle, win32con.WM_GETTEXT, length, buffer) # 读取文本
print(text)
return buffer[:length]
class main:
win_list = []
def work(self):
self.win_list = get_all_windows()
for win in self.win_list:
clasname = get_clasname(win)
if "Qt5152QWindowIcon" == clasname:
title = get_title(win)
if "接待中心" in title:
print(title)
sons = get_son_windows(win)
for son in sons:
title = get_title(son)
print(title)
# clasname = get_clasname(son)
# if clasname == "Chrome_RenderWidgetHostHWND":
# # print(title , clasname)
# text = get_window_text(son)
# print(text)
if __name__ == "__main__":
m = main()
m.work()