SetWindowsHookEx for Mac OS X?

后端 未结 3 1050
眼角桃花
眼角桃花 2020-12-17 03:18

Windows hooks allows you to poke inside other processes and sometimes alter their behaviors.

Is there such thing for Mac OS X?

Thanks!

相关标签:
3条回答
  • 2020-12-17 03:43

    What are you trying to accomplish, specifically? Can you explain why you want the Mac OS X equivalent of SetWindowsHookEx()? (Short answer: there isn't one. Medium answer: just about everything you can do with SetWindowsHookEx() on Windows can be done on Mac OS X in some other, more OO way.)

    0 讨论(0)
  • 2020-12-17 03:44

    Quartz event taps can monitor and modify low-level events such as keystrokes and mouse clicks, subject to some restrictions. Can you tell more about what you want to do?

    0 讨论(0)
  • 2020-12-17 03:55

    SetWindowsHookEx is more like the old InputManager hack, in the sense that you change the code of an app from inside a shared library / a plugin loaded to it.

    See SIMBL for a ready-made code injector to another process. For Objective-C classes, you then need to use method swizzling. I haven't tried replacing C functions / C++ classes myself, but surely it can be done using mach_override. See also this blog post.

    But usually if you want to modify a GUI app, tapping into Objective-C classes would be sufficient.

    0 讨论(0)
提交回复
热议问题