Je travaille sur un logiciel d'automatisation de test. Pour le faire fonctionner, il faut "jeter un coup d'oeil" sur le bureau et toutes les fenêtres ouvertes. Il a besoin de savoir quelles fenêtres sont ouvertes et quels contrôles elles contiennent. Il doit donc faire quelque chose de similaire à ce que fait Spy ++ (Spy ++ de Visual Studio). Est-ce que quelqu'un sait comment Spy ++ obtient toutes les informations? Existe-t-il des méthodes Windows que l'on peut appeler pour récupérer des informations sur les fenêtres ouvertes?Comment un logiciel comme Spy ++ obtient-il l'information?
Répondre
Vous pouvez utiliser EnumWindows pour obtenir toutes les fenêtres de niveau supérieur. Au sein du lpEnumFunc
, vous pouvez appeler FindWindowEx pour obtenir des fenêtres/contrôles enfants de chaque fenêtre de niveau supérieur, puis toute autre fonction intéressante qui vous donne des informations dont vous avez besoin, par ex. GetClassName, GetClassInfo, GetClientRect etc etc. Jetez un oeil here pour plus
C'est ce qu'on appelle un windows hook. Extrayez l'API Win32 SetWindowHookEx.
Il existe différents types de hooks, ils résident dans une DLL et cette fonction DLL est appelée par Windows pour le type de messages Windows d'un thread spécifique ou tous les threads dans le même bureau.
Veuillez également voir mon related answer on Windows hooks here.
- 1. Logiciel comme graphjam
- 2. Existe-t-il un logiciel opensource comme cpanel?
- 3. Comment écrire un logiciel déployable?
- 4. Sivlerlight Spy ne peut pas charger 'System.Windows.Controls.ChildWindow'
- 5. Port série Spy pour Windows Embedded CE
- 6. Y at-il un moyen d'empêcher l'ouverture de DLL dans un logiciel comme le réflecteur?
- 7. Comment définissez-vous un composant logiciel?
- 8. Comment maintenir un logiciel légèrement différent?
- 9. Automatiser un logiciel
- 10. Logiciel comme Synergy qui fonctionne également avec Windows
- 11. Je n'ai jamais vu un logiciel être publié en tant que jar, alors comment puis-je faire sortir un logiciel comme exe aussi?
- 12. Infrastructure pour un projet logiciel
- 13. Logiciel de conception basé sur un nœud?
- 14. Sous Windows, comment puis-je trouver les fichiers utilisés par un processus donné? Y a-t-il un logiciel qui fait cela?
- 15. édition du logiciel d'installation du logiciel
- 16. Comment puis-je coder un logiciel de surveillance de bureau?
- 17. Comment installer un logiciel du média au serveur distant?
- 18. Comment exécuter un logiciel serveur arbitraire à partir d'Eclipse?
- 19. Un problème de distribution de logiciel intéressant
- 20. Comment désinstaller le logiciel en C#
- 21. déployer un logiciel personnalisé sur Linux?
- 22. Comment déboguer les anciennes versions du logiciel?
- 23. Emailing sûr du logiciel
- 24. Analyse du développement logiciel
- 25. Comment valider la conception de logiciel?
- 26. Contrat pour le logiciel hébergé
- 27. Logiciel d'analyse musicale
- 28. Comment trouvez-vous un bon nom pour un site Web ou un logiciel que vous construisez?
- 29. Mon logiciel Java peut-il être transformé en logiciel .exe?
- 30. Qt version du logiciel automatique?
merci de toute façon, ces crochets sont "l'autre grande chose" dont j'ai besoin ... –