1 ```python3 2 # 通過窗口類名、窗口標題獲取控件句柄 3 hwnd = win32gui.FindWindow("ClassName", "TitleName") 4 # 通過句柄設置控件內容 5 win32gui.SendMessage(hwnd , 12, 0, '文本內容') 6 # 修改窗口標題 7 SetWindowText(hwnd, "Title") 8 #通過句柄獲取子窗口句柄 9 ch_hwnd = win32gui.FindWindowEx(hwnd, 0, "ClassName", "TitleName") 10 11 # 獲取所有子窗口 12 hwndChildList = [] 13 win32gui.EnumChildWindows(hwnd, lambda hwnd, param: param.append(hwnd), hwndChildList) 14 print(hwndChildList) 15 # 模糊查詢句柄 16 def FindWinHwnd(title, top=True): 17 titles = [] 18 19 def foo(hwnd, mouse): 20 if top: 21 if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd): 22 if title in GetWindowText(hwnd): 23 titles.append(hwnd) 24 else: 25 if title in GetWindowText(hwnd): 26 titles.append(hwnd) 27 28 EnumWindows(foo, 0) 29 if titles: 30 return titles[0] 31 else: 32 return 0 33 34 # 截圖 35 def window_api_capture(file, hWnd=0): 36 if hWnd == 0: 37 MoniterDev = win32api.EnumDisplayMonitors(None, None) 38 width = MoniterDev[0][2][2] 39 height = MoniterDev[0][2][3] 40 else: 41 left, top, right, bot = win32gui.GetWindowRect(hWnd) 42 width = right - left 43 height = bot - top 44 # 返回句柄窗口的設備環境,覆蓋整個窗口,包括非客戶區,標題欄,菜單,邊框 45 hWndDC = win32gui.GetWindowDC(hWnd) 46 # 創建設備描述表 47 mfcDC = win32ui.CreateDCFromHandle(hWndDC) 48 # 創建內存設備描述表 49 saveDC = mfcDC.CreateCompatibleDC() 50 # 創建位圖對象准備保存圖片 51 saveBitMap = win32ui.CreateBitmap() 52 # 為bitmap開辟存儲空間 53 saveBitMap.CreateCompatibleBitmap(mfcDC, width, height) 54 # 將截圖保存到saveBitMap中 55 saveDC.SelectObject(saveBitMap) 56 # 保存bitmap到內存設備描述表 57 saveDC.BitBlt((0, 0), (width, height), mfcDC, (0, 0), win32con.SRCCOPY) 58 try: 59 saveBitMap.SaveBitmapFile(saveDC, file) 60 except: 61 pass 62 win32gui.DeleteObject(saveBitMap.GetHandle()) 63 saveDC.DeleteDC() 64 mfcDC.DeleteDC() 65 win32gui.ReleaseDC(hWnd, hWndDC)