日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python编写界面遍历_python和pywin32实现窗口查找、遍历和点击

發布時間:2024/9/3 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python编写界面遍历_python和pywin32实现窗口查找、遍历和点击 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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)

瀏覽器密碼控件操作

# 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')

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的python编写界面遍历_python和pywin32实现窗口查找、遍历和点击的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。