1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| # -*- coding: utf-8*-
import os
import struct
import win32con
import win32gui
import time
def findControl(topHwnd,wantedText=None,wantedClass=None,selectionFunction=None):
childWindows=[] #
try:
win32gui.EnumChildWindows(topHwnd,_windowEnumerationHandler,childWindows)
except:
print"!!!!!!!!!!!!!!! LE CONTROLE N'EST PEUT-ETRE PAS UN CONTAINER! "
return childWindows
return childWindows
def findTopWindow(wantedText=None, wantedClass=None):
topWindows = []
win32gui.EnumWindows(_windowEnumerationHandler, topWindows)
for hwnd, windowText, windowClass in topWindows:
if wantedText and not windowText.startswith(wantedText):
continue
if wantedClass and not windowClass == wantedClass:
continue
return hwnd
def _windowEnumerationHandler(hwnd, resultList):
resultList.append((hwnd,win32gui.GetWindowText(hwnd),win32gui.GetClassName(hwnd)))
def getEditText(hwnd):
result = []
bufferlength = struct.pack('i', 255)
linecount = win32gui.SendMessage(hwnd, win32con.EM_GETLINECOUNT, 0, 0)
print"--- linecount :",linecount
for line in range(linecount):
linetext = bufferlength + "".ljust(253)
linelength = win32gui.SendMessage(hwnd, win32con.EM_GETLINE, line, linetext)
maLigne=linetext[:linelength]
print" ",maLigne
result.append(maLigne)
return result
if __name__ == '__main__':
import win32api
liste=[]
### 1/ Ouvrir monApplication:
os.startfile("C:\Program Files\Harrap's Multimꥩa\Shorter\Bin\HIHarrapsExplorer")
win32api.Sleep(10)
### 2/ Récupérer le handle de monApplication:
monApplication= win32gui.FindWindow("#32770",None)
print"--- monApplication :",monApplication
time.sleep(2)
### 3/ Tous les controles de monApplication::
controls = findControl(monApplication)
print"Liste de tous les controls de monApplication :"
hwmdTexte=''
for handle,nom,classe in controls:
resultat=getEditText(handle)
print handle, nom, classe
if nom=="texte":
hwmdTexte=handle
resultat=getEditText(hwmdTexte) |
Partager