1. 程式人生 > 程式設計 >python和pywin32實現視窗查詢、遍歷和點選的示例程式碼

python和pywin32實現視窗查詢、遍歷和點選的示例程式碼

Pywin32是一個Python庫,為python提供訪問Windows API的擴充套件,提供了齊全的windows常量、介面、執行緒以及COM機制等等。

1.通過類名和標題查詢視窗控制代碼,並獲得視窗位置和大小

import win32gui
import win32api
classname = "MozillaWindowClass"
titlename = "百度一下,你就知道 - Mozilla Firefox"
#獲取控制代碼
hwnd = win32gui.FindWindow(classname,titlename)
#獲取視窗左上角和右下角座標
left,top,right,bottom = win32gui.GetWindowRect(hwnd)

2.通過父控制代碼獲取子控制代碼

def get_child_windows(parent):  
 '''  
 獲得parent的所有子視窗控制代碼
  返回子視窗控制代碼列表
  '''  
 if not parent:   
  return  
 hwndChildList = []  
 win32gui.EnumChildWindows(parent,lambda hwnd,param: param.append(hwnd),hwndChildList)   
 return hwndChildList 

#獲取某個控制代碼的類名和標題
title = win32gui.GetWindowText(hwnd)  
clsname = win32gui.GetClassName(hwnd)  

#獲取父控制代碼hwnd類名為clsname的子控制代碼
hwnd1= win32gui.FindWindowEx(hwnd,None,clsname,None)

3.滑鼠定位與點選

#滑鼠定位到(30,50)
win32api.SetCursorPos([30,150])
#執行左單鍵擊,若需要雙擊則延時幾毫秒再點選一次即可
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN,0)
#右鍵單擊
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN,0)

4.傳送回車鍵

win32api.keybd_event(13,0)
win32api.keybd_event(13,win32con.KEYEVENTF_KEYUP,0)

5.關閉視窗

win32gui.PostMessage(win32lib.findWindow(classname,titlename),win32con.WM_CLOSE,0)

win32gui遍歷視窗並設定視窗位置

import win32gui
import win32con
def reset_window_pos(targetTitle): 
  hWndList = [] 
  win32gui.EnumWindows(lambda hWnd,param: param.append(hWnd),hWndList) 
  for hwnd in hWndList:
    clsname = win32gui.GetClassName(hwnd)
    title = win32gui.GetWindowText(hwnd)
    if (title.find(targetTitle) >= 0):  #調整目標視窗到座標(600,300),大小設定為(600,600)
      win32gui.SetWindowPos(hwnd,win32con.HWND_TOPMOST,600,300,win32con.SWP_SHOWWINDOW)
      
reset_window_pos("windowName")

到此這篇關於python和pywin32實現視窗查詢、遍歷和點選的示例程式碼的文章就介紹到這了,更多相關pywin32 視窗查詢、遍歷和點選內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!