Hi Guys,

I have been forwarded here from the JNA list by a very helpful Timothy Wall
for advice and hints from you guys.

Im attempting to capture low-level events in OSX (for now mouse events) and
then pass them to Java.

I have a very simple version of this working in C (XCode) using the Carbon
framework based on the MonitorEvents example by apple (
http://developer.apple.com/mac/library/samplecode/EventMonitorTest/)

I have uploaded this very simple working sample here:
http://www.mikecann.co.uk/DumpingGround/JNA/SimpleEventMonitorXCode.zip

My next step was to get these events in Java. I initially started to use JNI
but then I discovered JNA and decided to give that a go first as then it
would allow me to code everything in pure Java which seems like a neater
solution to me.

So after much backward and forward emailing with Tim I got to the stage
where I have a very simple JNA example that compiles and runs with no
errors: http://www.mikecann.co.uk/DumpingGround/JNA/JNAMacTest.zip

The only problem now is that im not getting any events in my Java program
and im not sure why and as there are no errors its difficult to track down
what I must be doing wrong.

The code all revolves around the Carbon InstallEventHandler() method:

            // the magic happens here with the call to GetEventMonitorTarget
as described in CarbonEvents.h
            // The event monitor target is a special event target used to
monitor user input events across all processes.
            // When the monitor target detects a matching event, then
MonitorHandler is called.
            // InstallEventHandler( GetEventMonitorTarget(), MonitorHandler,
GetEventTypeCount( kEvents ),kEvents, 0, &sHandler
);                                     // C version
            OSStatus status =
lib.InstallEventHandler(lib.GetEventMonitorTarget(), new KeyListener(), new
ItemCount(1), eventTypes, null, sHandlerRef);     // JNA version

There is no error returned from this so im not sure whats going wrong.

So my question is are there any low-level debugging tools I can use to
compare what happens on the C version and the Java version?

Also there is a JNA version of the cocoa framework, but unfortunately I
couldnt find any info on global-mouse event capturing using pure cocoa, as
far as I could tell you have to use Carbon to to this?

Cheers,

-- 
Mike Cann
http://www.mikecann.co.uk/
http://www.artificialgames.co.uk/
_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to