python 包之 pywin32 操控 windows 系統(tǒng)教程
一、安裝

包裝了Windows 系統(tǒng)的 Win32 API,能創(chuàng)建和使用 COM 對象和圖形窗口界面
pip install pywin32
二、通過標題獲取窗口句柄
通過標題查找,僅返回一個頂層窗口的句柄
不支持模糊查詢
import win32gui # 獲取窗口句柄 handle = win32gui.FindWindow(None, '窗口名字') # 返還窗口信息(x,y坐標,還有寬度,高度) handleDetail = win32gui.GetWindowRect(handle)
三、通過坐標獲取窗口句柄
import win32gui hid = win32gui.WindowFromPoint((100, 100))
四、通過句柄獲取窗口信息
import win32gui hid = win32gui.WindowFromPoint((100, 100)) # 獲取窗口標題 title = win32gui.GetWindowText(hid) # 獲取窗口類名 class_name = win32gui.GetClassName(hid)
五、通過句柄設置窗口位置大小
import win32gui hid = win32gui.WindowFromPoint((100, 100)) # 參數(shù):句柄,窗口左邊界,窗口上邊界,窗口寬度,窗口高度,確定窗口是否被刷新 win32gui.MoveWindow(hid, 100, 100, 800, 800, True)
六、激活句柄窗口
激活指定句柄的窗口
import win32gui hid = win32gui.WindowFromPoint((100, 100)) # 將創(chuàng)建指定窗口的線程設置到前臺,并且激活該窗口 win32gui.SetForegroundWindow(hid)
七、鼠標位置的設置和獲取
import win32api # 設置位置 win32api.SetCursorPos((100, 100)) # 獲取位置 point = win32api.GetCursorPos() print(point)
八、鼠標點擊事件
可以通過 win32api.mouse_event(flags, x, y, data, extra_info) 進行鼠標操作
MOUSEEVENTF_LEFTDOWN:表明接按下鼠標左鍵
MOUSEEVENTF_LEFTUP:表明松開鼠標左鍵
MOUSEEVENTF_RIGHTDOWN:表明按下鼠標右鍵
MOUSEEVENTF_RIGHTUP:表明松開鼠標右鍵
MOUSEEVENTF_MIDDLEDOWN:表明按下鼠標中鍵
MOUSEEVENTF_MIDDLEUP:表明松開鼠標中鍵
MOUSEEVENTF_WHEEL:鼠標輪移動,數(shù)量由data給出
import win32api import win32con # 模擬鼠標在(400, 500)位置進行點擊操作 point = (400, 500) win32api.SetCursorPos(point) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)
九、鍵盤事件
通過 keybd_event(bVk, bScan, dwFlags, dwExtraInfo) 可以進行監(jiān)聽鍵盤事件
bVk:虛擬鍵碼
bScan:硬件掃描碼,一般設置為0即可
dwFlags:函數(shù)操作的一個標志位,如果值為KEYEVENTF_EXTENDEDKEY則該鍵被按下,也可設置為0即可,如果值為KEYEVENTF_KEYUP則該按鍵被釋放
dwExtraInfo:定義與擊鍵相關的附加的32位值,一般設置為0即可
import win32api import win32con # 按下ctrl+s win32api.keybd_event(0x11, 0, 0, 0) win32api.keybd_event(0x53, 0, 0, 0) win32api.keybd_event(0x53, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(0x11, 0, win32con.KEYEVENTF_KEYUP, 0)
Python Windows
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。