Frage

Ich bin ein Neuling Cocoa-Entwickler und ich meine erste Anwendung zu entwickeln. Ich möchte eine eindeutige Kennung von jedem Fenster von jeder Anwendung lesen - ob zum Thema Kakao oder Kohlenstoff. Cocoa-Anwendungen machen ihren Fenster-IDs zu Applescript zur Verfügung (obwohl ich bin sicher, es ist ein viel besserer Weg, dies durch eine richtige Objective C Route zu tun), aber ich versuche, Fenster-IDs von Dokumenten in den Adobe-Anwendungen zuzugreifen. Dies scheint viel schwieriger zu sein. Alles, was ich scheinen in den Referenzbibliotheken zu finden ist HIWindowGetCGWindowID :

"Mit dieser Funktion das Fenster ID durch das Fenster Server zugewiesen zurückgibt, wenn ein Fenster erstellt wird. Die Fenster-ID mit jedem anderen Carbon-Funktion im allgemeinen nicht nützlich, sondern kann mit anderen Mac OS X-Funktionen verwendet werden, die ein Fenster ID erfordern, wie Funktionen in OpenGL. "

Kann diese verwendet werden, um die Identifikation von meinem Programm zu bekommen? Oder ist es nur eine Funktion, die innerhalb einer Anwendung verwendet werden kann?

Wenn jemand mich in die richtige Richtung zeigen könnte, würde ich ewig dankbar sein.

War es hilfreich?

Lösung

Die Funktion HIWindowGetCGWindowID() kann nur ein CGWindowID zurückkehrt für einen Ihrer App-Fenster, da ein WindowRef aus einem anderen Programm in Ihnen nicht gültig sein.

Die Funktion CGWindowListCopyWindowInfo() von CGWindow.h wird eine Reihe von Worten zurückkehren, eine für jedes Fenster, das die Kriterien entspricht, die Sie festgelegt, darunter auch solche in anderen Anwendungen. Es können nur Sie durch Fenster über ein bestimmtes Fenster filtern, Fenster unter einem gegebenen Fenster und „Bildschirm“ Fenster, aber das Wörterbuch zurück umfasst einen Prozess-ID für den Besitz App, die Ihnen passen Fenster zu App nutzen können. In jedem zurück Wörterbuch wird die kCGWindowNumber Schlüssel zum Fenster-ID als CFNumber zeigen. Es gibt auch eine CGWindowListCreate() Funktion, die nur eine Reihe von CGWindowIDs zurückgibt. Es gibt im Grunde keine Dokumentation für diese Funktionen über den CGWindow.h Header und die Son of Code Schnappen Probe. Außerdem ist es 10.5 nur.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top