Hooks unter Mac OS X

A

ArgV

Neues Mitglied
Thread Starter
Dabei seit
08.02.2007
Beiträge
5
Reaktionspunkte
0
hallo,

habe leider mit der MAC-Welt zur Zeit sehr wenig zu tun...aber vielleicht ändert sich das bald...ich wollte speziell mal wissen, ob es sowas wie Hooks, welche man in der win32Programmierung einsetzt unter Mac auch in der Art gibt???

Danke
 
Dann erklär den Mac Programmierern mal, was "Hooks" sind ...

Alex
 
Ein Hook (zu deutsch: Haken) ist eine Einrichtung im Windows Betriebssystem, deren Aufgabe darin besteht Systemnachrichten abzufangen.

Im „Normalzustand“ kann eine Anwendung (bzw. nur ihr aktives Fenster) nur Nachrichten empfangen, welche auch für diese Anwendung (bzw. das aktive Fenster) bestimmt sind.

Am Beispiel der Maus würde das in folgender Reihenfolge funktionieren:

1. Benutzer betätigt die Maus (Bewegung, Klick oder Mausrad drehen)
2. Windows bekommt dies über die Hardware und das BIOS mit.
3. Windows überprüft, welche Anwendung, bzw. auf welches Fenster z.B. geklickt wurde.
4. Windows entscheidet an welche Anwendung bzw. welches Fenseter die Nachrichten (Mausaktivitäten) geschickt werden sollen.
5. Windows schickt die entsprechende Mausaktivität an die aktive Anwendung bzw. das aktive Fenster der aktiven Anwendung.

Ein Hook setzt nun am Punkt 3 an, um praktisch als Zwischensystem zu fungieren. Somit bekommt nun dieses Zwischensystem die Nachrichten der Mausaktivitäten zuerst und entscheidet darüber, was mit diesen passiert.
Das Zwischensystem hat somit die Möglichkeit über alle Mausaktivitäten zu verfügen, bevor sie an andere Anwendungen weitergeleitet werden.

Dabei gibt es 2 Arten von Hooks.
a) Lokale Hooks: Hier werden die Nachrichten, nur einer Anwendung behandelt
b) Systemweite bzw. globale Hooks Hier werden alle Nachrichten verarbeitet

...entnommen hier
 
Ein ähnlichen Mechanismus gibt es sicher, aber bisher bin ich ganz gut ohne durch's Leben gekommen. Der Carbon Event Manager ist da vielleicht ein Stichwort.

Alex
 
...aha mir geht es halt um folgenden versuch: habe meine eigene MAC-Anwendung laufen...und klicke dann z.B. mit meiner Maus irgendwohin auf dem Bildschirm..außerhalb meiner anwendung....zum beispiel klicke ich in ein anderes Fenster....nun möchte ich innerhalb meiner Anwendung solche Mausklicks beobachten bzw. lauschen...ob global außerhalb meiner anwendung was passiert...ist sowas mittels Carbon Event Manager möglich?
 
Mac, nicht MAC.

Und warum möchtest Du das machen? Grundsätzlich würde ich sagen, ausserhalb Deiner App ist halt ausserhalb Deiner App.

Ich weiss nicht, wo man da ansetzen muss. Transparentes Fullscreenwindow?

Alex
 
naja...zum beispiel möchte ich mitbekommen ob eine andere anwendung minimiert wird bzw. sich ihr fenster verschiedt...wie groß ihr sichtbereich ist etc....
 
Hm, das ist auch bei Apple abfangbar...wie war das nochmal? Ist schon sehr lange her aber ich hab auf meinem alten iBook mal eine Spielerei gehabt wo ich zwei Augen hatte, die immer zum Mauszeiger schauten, egel in welcher App ich war.
Ich nehm mal an, dass man da eventuell bei Apple-Developers mehr drüber erfahren kann.
 
ArgV schrieb:
naja...zum beispiel möchte ich mitbekommen ob eine andere anwendung minimiert wird bzw. sich ihr fenster verschiedt...wie groß ihr sichtbereich ist etc....

Warum?

Aber zum Thema: Die Liste der Fenster durchzugehen ist nicht so schwer, ich hab das mal gemacht. Kann mich aber nicht mehr genau erinnern wie, aber war keine Zauberei.

Madcat schrieb:
ich hab auf meinem alten iBook mal eine Spielerei gehabt wo ich zwei Augen hatte, die immer zum Mauszeiger schauten, egel in welcher App ich war.

xeyes, das ist aber Teil von X11

Alex
 
falls es euch vielleicht noch einfällt wie es geht...wäre ich euch sehr dankbar
 
Naja, ein bischen Suchen wirst Du müssen.

Ich weiss ja nicht, ob der Rest Deiner Applikation schon fertig ist, aber Doku fressen mussten wir alle mal ;)

Alex
 
Zurück
Oben Unten