2010-07-15 205 views

回答

4

SetWindowsHookEx更像是舊的InputManager黑客攻擊,從某種意義上說,您可以從共享庫/插件加載到應用程序中更改應用程序的代碼。

請參閱SIMBL瞭解另一種工藝的現成代碼注入器。對於Objective-C類,則需要使用method swizzling。我沒有嘗試自己替換C函數/ C++類,但肯定可以使用mach_override來完成。另見this blog post

但是通常如果你想修改一個GUI應用程序,那麼敲入Objective-C類就足夠了。

0

石英事件觸發器可以監視和修改低級事件,例如按鍵和鼠標點擊,但受到一些限制。你能告訴更多關於你想做什麼的嗎?

+0

假設我想掛鉤函數加載asdf.dylib。 理想是強制應用程序加載我自己的定製版本的asdf.dylib,而不使用DYLD_INSERT_LIBRARIES技巧。 – karlphillip 2010-07-15 18:32:38

0

你想完成什麼,具體是什麼?你能解釋一下爲什麼你需要Mac OS X相當於SetWindowsHookEx()? (簡短回答:沒有一個。中等答案:幾乎所有你可以用Windows上的SetWindowsHookEx()做的所有事情都可以在Mac OS X上以其他更多的OO方式完成。)

+0

在窗口上'SetWindowsHookEx'可以幫助你從**其他**進程接收事件。如窗戶關閉,窗戶最大化等。你確定這可以在Mac OS X上完成嗎? – 2014-12-27 13:53:26

+0

這是一個非常古老的問題的答案。 :)我說的是,如果我們知道原始開發人員試圖解決的問題,我們可以推薦其他方法。 – 2014-12-27 17:48:33