2015-12-23 4 views
1

Je souhaite enregistrer un scénario utilisateur d'une application Windows. Pour cela, je veux récupérer/enregistrer le type d'objet, le nom de l'objet et la valeur de l'objet GUI après un clic de souris sur l'objet à côté d'une capture d'écran et la position de la souris.comment obtenir le nom et la valeur d'un objet GUI en Python après avoir cliqué sur

Je suis coincé avec trouver le comment. S'il vous plaît aider.

J'ai le code Python suivant.

saveDir = r'C:\Privat\ZuppU\temp' 
stepListID = 1 


def capture_step_objects(event): 
    global stepListID 
    stepEvent = 'Click' 

    # Capture the application mouseclick area 
    (mx, my) = event.Position 

    fgWindow = win32gui.GetForegroundWindow() 
    fgWindowName = win32gui.GetWindowText(fgWindow) 

    # Capture the application window 
    (ax1, ay1, ax2, ay2) = win32gui.GetWindowRect(fgWindow) 
    stepCapture = ImageGrab.grab((ax1, ay1, ax2, ay2)) 
    stepImage = os.path.join(saveDir, 'Step' + str(stepListID) + '.png') 
    stepCapture.save(stepImage) 

hm = pyHook.HookManager() 
hm.SubscribeMouseAllButtonsDown(capture_step_objects) 
hm.HookMouse() 
pythoncom.PumpMessages() 
hm.UnhookMouse() 

# Main loop 

Répondre

0

Il est un exemple pour pywinauto et pyHook: recorder.py.

Mais vous pouvez rester avec d'autres pièges. L'exemple typique consiste à fermer la boîte de dialogue en cliquant sur le bouton "OK". Lorsque vous êtes dans le gestionnaire d'événements, la boîte de dialogue peut déjà être fermée afin que vous ne puissiez pas récupérer d'informations sur une fenêtre non existante. Un suivi compliqué est requis ici.

La même chose concerne les événements API UI Automation (pywinauto va bientôt prendre en charge UIA). Mais nous n'avons pas de ressources to implement even pure Python analogue de pyHook à court terme. Une bonne implémentation de l'enregistreur est donc très loin de maintenant. Toute aide est appréciée. ;)