myfriend

参考别人文章的

 

如下:

# coding=utf-8

__author__ = \'Administrator\'

__doc__ = \'\'\'
pythonwin中win32gui的用法
本文件演如何使用win32gui来遍历系统中所有的顶层窗口,
并遍历所有顶层窗口中的子窗口
\'\'\'

import win32gui
from pprint import pprint



def show_window_attr(hWnd):
    \'\'\'
    显示窗口的属性
    :return:
    \'\'\'
    if not hWnd:
        return

    # 中文系统默认title是gb2312的编码
    title = win32gui.GetWindowText(hWnd)
   #这里可能要把标题的gbk转换成utf-8 ,暂时不管了,可以加个函数 clsname
= win32gui.GetClassName(hWnd) # print(\'窗口句柄:%s \' % (hWnd)) print(\'窗口类名:%s\' % (clsname)) # str = "Chrome_WidgetWin_1" # if str == clsname: # fd = win32gui.FindWindow(clsname, None) # 查找窗口句柄 # win32gui.ShowWindow(fd, 1) # 隐藏窗口 print (\'窗口句柄:%s \' % (hWnd)) print (\'窗口标题:%s\' % (title)) def show_windows(hWndList): for h in hWndList: show_window_attr(h) def demo_top_windows(): \'\'\' 演示如何列出所有的顶级窗口 :return: \'\'\' hWndList = [] win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd), hWndList) show_windows(hWndList) return hWndList def demo_child_windows(parent): \'\'\' 演示如何列出所有的子窗口 :return: \'\'\' if not parent: return hWndChildList = [] win32gui.EnumChildWindows(parent, lambda hWnd, param: param.append(hWnd), hWndChildList) show_windows(hWndChildList) return hWndChildList hWndList = demo_top_windows() assert len(hWndList) parent = hWndList[20] # 这里系统的窗口好像不能直接遍历,不知道是否是权限的问题 hWndChildList = demo_child_windows(parent) print(\'-----top windows-----\') pprint(hWndList) print(\'-----sub windows:from %s------\' % (parent)) pprint(hWndChildList)

 

分类:

技术点:

相关文章: