2012-02-23 3 views
0

Je suis un peu nouveau à la programmation, et je veux écrire un programme simple qui doit OCR une fenêtre particulière. Actuellement, j'utilise (w.GetForegroundWindow()), mais cela me donne la fenêtre courante qui sera toujours le shell Python, puisque c'est celui qui est actif quand je l'exécute, même si c'est pour une fraction de seconde seulement. Après avoir cherché un peu, j'ai trouvé la fonction .Getwindows, mais pas beaucoup sur Python. Que fait-il, et quels sont les paramètres? Serai-je capable de cibler un processus particulier (= fenêtre) avec lui? Si non, que puis-je utiliser alors?Quels sont les paramètres de la fonction .GetWindow en python?

est d'utiliser le module pywin32 sur Python 2.7 dans Windows


Je suis sous Windows, Python 2.7. La fonction GetWindows est fournie avec le module pywin32, si je ne me trompe pas

+2

Vous devez expliquer plus au sujet de cette fonction. De quel module s'agit-il? Quel système d'exploitation? Quelle version de Python? Il semble que vous parliez de Windows + IronPython, n'est-ce pas? – senderle

+0

nop, pas ça. inclus tout ce qui dans le résumé édité déjà. Thnx btw –

Répondre

0

La méthode habituelle consiste à appeler le EnumWindows avec un rappel, puis d'obtenir des informations sur chaque hwnd - par exemple, le nom, le titre ou la classe de fenêtre. Vérifiez cela par rapport à ce que vous recherchez et enregistrez le hwnd correspondant. Après les retours EnumWindows, vérifiez que vous avez trouvé un hwnd valide et utilisez-le pour votre programme.

Ce n'est pas agréable - il n'y a pas beaucoup de soutien pour ce genre de chose dans Windows. J'ai entendu dire que l'utilisation des fonctionnalités d'accessibilité est meilleure mais je n'ai aucune expérience en la matière.

+0

aïe, cela semble un peu compliqué. Donc, cela me permettrait de cibler ce programme spécifique en utilisant le droit? –

+0

il vous permettra d'obtenir un hwnd spécifique. pas sûr de ce que vous entendez par programme dans ce contexte. Si vous connaissez le nom du processus, vous pourriez peut-être essayer 'EnumProcesses' et obtenir le hwnd principal de la structure processinfo –

Questions connexes