Hoi Ronald,

Ik had gezien in de ObjC documentatie dat er nog een 6de argument bij moet om 
extra data aan je functie te sturen, maar als ik dat probeer krijg ik dit:
TypeError: function takes exactly 5 arguments (6 given)

Ik werk met Mac OS X 10.6 met de voor geïnstalleerde versie van Python (2.6) en 
PyObjC.
Zou het zinvol zijn om via Macports een installatie te doen van Python en 
PyObjC?

Pepijn

On Feb 28, 2010, at 9:28 PM, Ronald Oussoren wrote:

> 
> On 28 Feb, 2010, at 15:47, Pepijn de Vos wrote:
> 
>> Dank voor de reactie.
>> 
>> Nadat ik nog wat rond heb gekeken lijk het er op dat ik zowel 
>> CFMachPortCreateRunLoopSource als CFRunLoopGetCurrent nodig hebt, klopt dit?
> 
> Als je de machport in een runloop wilt hangen heb je beiden nodig. 
> CFRunLoopGetCurrent geeft je een referentie naar de huidige runloop, 
> CFMachPortCreate... maakt een object dat in een runloop gehangen kan worden 
> en events genereert als er iets te doen is.
> 
>> 
>> Het volledige script is helaas niet veel meer dan wat ik al gepost heb, is 
>> dit misschien gewoon een bug in PyObjC?
>> 
>> from Quartz import *
>> 
>> def MyFunction(p, t, e):
>>      print e
>> 
>> CGEventTapCreate(kCGHIDEventTap, kCGTailAppendEventTap, 
>> kCGEventTapOptionListenOnly, kCGEventLeftMouseDown, MyFunction)
> 
> Vreemd. Het werkt wel op mijn machine, met een extra argument achter 
> MyFunction:
> 
> tap = CGEventTapCreate(kCGHIDEventTap, kCGTailAppendEventTap, 
> kCGEventTapOptionListenOnly, kCGEventLeftMouseDown, MyFunction, None)
> 
> Welke versies van OSX, python en pyobjc gebruik je?
> 
> Ronald
>> 
>> Groeten,
>> Pepijn
>> 
>> On Feb 28, 2010, at 1:23 PM, Ronald Oussoren wrote:
>> 
>>> 
>>> On 25 Feb, 2010, at 18:42, Pepijn de Vos wrote:
>>> 
>>>> Hoi allemaal,
>>>> 
>>>> Ik ben momenteel druk bezig met een event systeem toe te voegen aan 
>>>> PyMouse, mijn muis-besturings module.
>>>> 
>>>> Nu heb ik uitgevonden dat er in ObjC een event systeem zit, maar ik kan er 
>>>> maar niet achter komen hoe het precies werkt. Weet iemand hier daar iets 
>>>> over?
>>>> 
>>>> Om te beginnen importeer ik de hele zooi:
>>>> from Quartz import *
>>>> 
>>>> Daarna heb ik geprobeerd een event tap te maken door middel van deze 
>>>> pagina:
>>>> http://developer.apple.com/mac/library/documentation/Carbon/Reference/QuartzEventServicesRef/Reference/reference.html#//apple_ref/c/func/CGEventTapCreate
>>>> 
>>>> Ik kwam tot deze code:
>>>> CGEventTapCreate(kCGHIDEventTap, kCGTailAppendEventTap, 
>>>> kCGEventTapOptionListenOnly, kCGEventLeftMouseDown, MyFunction)
>>>> 
>>>> Maar dat geeft direct een segfault.
>>>> Ik heb wel uitgevonden dat je de event eerst aan een eventloop moet 
>>>> toevoegen, maar waar ik die vandaan haal...
>>>> CFMachPortCreateRunLoopSource(None, CFMachPortRef, 0) -> None
>>>> CFRunLoopGetCurrent() -> heleboel output
>>>> 
>>>> Ik weet ook niet of dat iets te maken heeft met de segfault.
>>> 
>>> CFRunLoopGetCurrent is de juiste manier.
>>> 
>>> Ik heb geen idee waar de crash vandaan komt, kan je een volledig script 
>>> posten waarmee je het probleem laat zien?
>>> 
>>> Ronald
>>>> 
>>>> Bij voorbaat dank.
>>>> 
>>>> Pepijn de Vos
>>>> _______________________________________________
>>>> Python-nl mailing list
>>>> Python-nl@python.org
>>>> http://mail.python.org/mailman/listinfo/python-nl
>>> 
>>> _______________________________________________
>>> Python-nl mailing list
>>> Python-nl@python.org
>>> http://mail.python.org/mailman/listinfo/python-nl
>> 
>> _______________________________________________
>> Python-nl mailing list
>> Python-nl@python.org
>> http://mail.python.org/mailman/listinfo/python-nl
> 
> _______________________________________________
> Python-nl mailing list
> Python-nl@python.org
> http://mail.python.org/mailman/listinfo/python-nl

_______________________________________________
Python-nl mailing list
Python-nl@python.org
http://mail.python.org/mailman/listinfo/python-nl

Antwoord per e-mail aan