2009-07-27 5 views
3

J'essaie de faire des choses sur OS X en utilisant l'API de carbone, mais je ne trouve rien que je recherche sur google ou sur le site de développement d'Apple.Liste et recherche de fenêtres sur OS X

Idéalement, je voudrais trouver une fonction qui trouve la fenêtre à un certain endroit sur l'écran. Il semble qu'il existe des fonctions similaires, mais l'une d'entre elles dit qu'elle ne trouve que des fenêtres dans le processus en cours, et l'autre dit que c'est pour localiser la destination des clics de souris.

En supposant qu'il n'y a aucun moyen de faire cela, comment irais-je à l'itération à travers toutes les fenêtres sur l'écran. Trouver des informations sur le fonctionnement du gestionnaire de fenêtres OS X est assez difficile, car il n'a pas de nom, et toute recherche google est surpuissante par référence au système d'exploitation Windows. A-t-il des fenêtres imbriquées? Qu'est-ce qu'une liste de fenêtres? Y a-t-il un seul? est-ce que chaque processus en a un? pouvez-vous créer arbitrairement beaucoup d'entre eux? Je devine que GetWindowList est ce que je cherche, mais il n'y a pas d'exemple, et la documentation est toute vague "Obtient la fenêtre suivante", sans aucune explication de l'abstraction ou du code d'exemple. Si quelqu'un pouvait expliquer comment je pourrais faire cela, ou comment le gestionnaire de fenêtres voit des choses, ou me diriger vers un endroit que je pourrais lire à ce sujet, ce serait génial!

Répondre

4

Je pense que ce que vous cherchez est Quartz Window Services, une partie de la structure Core Graphics. Vous voudrez probablement commencer par la fonction CGWindowListCreate() pour obtenir une liste de numéros d'identification pour les fenêtres à l'écran, que vous pouvez ensuite utiliser pour obtenir plus d'informations sur chaque fenêtre individuelle.