小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

python和pywin32實(shí)現(xiàn)窗口查找、遍歷和點(diǎn)擊

 dinghj 2019-04-16

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

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

第二,獲得窗體中控件的id號(hào),spy++

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

最后,利用控件句柄進(jìn)行操作

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

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

#-*- coding: utf-8 -*-  ##設(shè)置編碼方式

import win32api,win32gui,win32con

label = 'tt' #此處假設(shè)主窗口名為tt

hld = win32gui.FindWindow(None, label)

if hld > 0:

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

    buffer = '0' *50

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

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

    print buffer[:len-1]

    #虛擬鼠標(biāo)點(diǎn)擊按鈕(或者回車)

    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)


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


#關(guān)閉窗體
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)

 

 

瀏覽器密碼控件操作

 

 

# coding=utf-8

import win32gui
import win32api
import win32con

def CallBack(hwnd, hwnds):
if win32gui.GetClassName(hwnd) == 'Edit':
hwnds[win32gui.GetClassName(hwnd)] = hwnd
return True


w1hd = win32gui.FindWindow(u'IEFrame', None)

print '%x' %w1hd
# w2hd = win32gui.FindWindowEx(w1hd,0,u'TabWindowClass', None)

# print '%x' %w2hd

hwndChildList = {}
win32gui.EnumChildWindows(w1hd, CallBack, hwndChildList)

for k,v in hwndChildList.items():
print '%s %x' %(k,v)
#win32api.SendMessage(v, win32con.WM_CHAR, ord('a'), 0)
#t1 =win32gui.GetDlgItem(v,1)
len1 = win32gui.SendMessage(v, win32con.WM_GETTEXTLENGTH)+1
buffer = '0' *50
win32gui.SendMessage(v, win32con.WM_GETTEXT, len1, buffer)

print len1
print buffer[:len1-1]
win32gui.SendMessage(v,win32con.WM_SETTEXT,None,'902723')

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多