1
Voici ma fonction:Comment puis-je obtenir un texte à partir d'une fenêtre?
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)
myLigne=linetext[:linelength]
print" ",myLigne
result.append(myLigne)
return result
resultat=getEditText(hwmdTexte)
Je veux obtenir le texte d'un widget, mais cela ne fonctionne pas. Il y a plusieurs lignes dans le widget de mon application mais j'ai linecount = 0 et bien sûr pas de texte ... Pourriez-vous m'aider s'il vous plait.
1. Le formatage semble cassé. 2. Quel widget, avec quel toolkit GUI, etc.? – delnan
Tout d'abord, vérifiez que votre 'hwnd' fait référence à un contrôle d'édition (et non à une fenêtre contenant un contrôle d'édition, etc.). Utilisez Spy ++ ou un outil similaire pour confirmer vos hypothèses. – atzz
Merci pour votre réponse. Je pense aussi qu'il y a un problème avec le contrôle. Cependant, je l'ai vérifié avec 2 outils différents (WinID et AutoIt). Le nom du contrôle est TEXTE. De plus j'ai essayé une boucle for, juste au cas où. pour handle, nom, classe dans les contrôles: resultat = GetTex (handle) Il y a une autre chose que je ne comprends pas: pourquoi avec WinID et AutoIt je peux obtenir le texte d'une application mais pas avec celui-ci ... – chris33