轉 python通過win32api輕松獲取控件的屬性值


python通過win32api輕松獲取控件的屬性值  

2014-08-29 15:26:56|  分類: 自動化測試 |  標簽:win32  |舉報|字號 訂閱

 
 

1.如何利用句柄操作windows窗體

首先,獲得窗體的句柄  win32api.FindWindows()

第二,獲得窗體中控件的id號,spy++

第三,根據控件的ID獲得控件的句柄(hwnd)  GetDlgItem(hwnd,loginID)

最后,利用控件句柄進行操作

python可以通過win32api輕松獲取控件的屬性值

通過標簽找到主窗口句柄,然后通過主句柄獲取下屬控件句柄

#-*- coding: utf-8 -*-  ##設置編碼方式

import win32api,win32gui,win32con

label = 'tt' #此處假設主窗口名為tt

hld = win32gui.FindWindow(None, label)

if hld > 0:

    dlg = win32api.FindWindowEx(hld, None, 'Edit', None)#獲取hld下第一個為edit控件的句柄

    buffer = '0' *50

    len = win32gui.SendMessage(dlg, win32con.WM_GETTEXTLENGTH)+1 #獲取edit控件文本長度

    win32gui.SendMessage(dlg, win32con.WM_GETTEXT, len, buffer) #讀取文本

    print buffer[:len-1]

    #虛擬鼠標點擊按鈕(或者回車)

    btnhld = win32api.FindWindowEx(hld, None,'Button', None)

    # win32gui.PostMessage(btnhld, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)

    # win32gui.PostMessage(btnhld, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

    win32gui.PostMessage(btnhld, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, 0)

    win32gui.PostMessage(btnhld, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, 0)

    #獲取顯示器屏幕大小

    width = win32api.GetSystemMetrics(win32con.SM_CXSCREEN)

    height = win32api.GetSystemMetrics(win32con.SM_CYSCREEN)


#點擊窗口button
w=win32ui.FindWindow(clsname,windowtitle)
b=w.GetDlgItem(窗口id)
b.postMessage(win32con.BM_CLICK)


#關閉窗體
import win32ui
import win32con
wnd=win32ui.FindWindow(classname,None)
wnd.SendMessage(win32con.WM_CLOSE)  成功!

import win32ui
w=win32ui.FindWindow(classname,窗體title)
print w.GetDlgItemText(0xFFFF)  # 獲得彈窗里的消息文字

最小化窗體
w=win32gui.FindWindow()
win32gui.CloseWindow(w)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM