參考博客鏈接
https://blog.csdn.net/polyhedronx/article/details/81988948
參考博客鏈接
https://www.cnblogs.com/zhaobl/p/3326332.html
pyhandle=win32gui.FindWindow(classname,text)
pyhandle windows窗體句柄,int 類型
className 窗體類名
text 窗體標題
win32gui.SetForegroundWindow(pyhandle) win32gui.ShowWindow(pyhandle, win32con.SW_MAXIMIZE)
窗體置頂
窗體最大化
handle=win32gui.FindWindowEx(pyhandle,None,'Edit',None)
通過父pyhandle窗體句柄找到第一個子窗體或控件
函數原型
pyHandle=FindWindowEx(Parent, ChildAfter , ClassName , WindowName)
ChildAfer int類型,為0表示搜索所有
win32gui.SendMessage(handle, win32con.WM_GETTEXTLENGTH) #向句柄為handle的窗體發送消息得到文本內容大小,阻塞式
函數原型
int = SendMessage(hwnd, message , wparam , lparam )
具體內容請查看windows api
buffer = win32gui.PyMakeBuffer(len)
得到長度為len的緩沖區類型
win32gui.SendMessage(edit_handle, win32con.WM_GETTEXT, len, buffer) # 讀取文本
讀取控件的文本內容
address, length = win32gui.PyGetBufferAddressAndLen(buffer)
通過buffer得到地址和字符串長度
text = win32gui.PyGetString(address, length)
通過地址和字符串長度得到文本內容
left,top,right,bottom=win32gui.GetClientRect(pyhandle)
得到窗體的左,頂,右 ,底的坐標
import win32gui
win32api.keybd_event(key, 0, 0, 0)
發送鍵盤消息,key為鍵值
import win32api
win32api.SetCursorPos([width, height])
設置鼠標在屏幕中的坐標
import win32api,win32con
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
鼠標左鍵單擊
import win32api,win32con
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
鼠標右鍵單擊
import win32gui
hwndChildList = [] win32gui.EnumChildWindows(parent, lambda hwnd, param: param.append(hwnd), hwndChildList)
得到parent窗體下所有的窗體和控件句柄
import win32api,win32con
win32api.keybd_event(key, 0, win32con.KEYEVENTF_KEYUP, 0)
key int類型,讓按下的鍵抬起來
import win32gui,win32con
win32gui.SendMessage(handle,win32con.WM_SETTEXT,0,text)
設置控件文本內容
import win32gui
win32gui.GetDlgItemText(pyhandle,dlgItemId)
通過窗體句柄和控件id得到控件的text
控件的id可以通過spy++或者AutoIt windows info獲取
import win32console,win32gui
cmd_win=win32console.GetConsoleWindow() if cmd_win>0: win32gui.ShowWindow(cmd_win,0) #windows下隱藏python程序運行的黑窗口,cmd命令行窗口