2010-06-18 48 views
1

我想爲應用切換器(aka'cmd + tab')創建替代品。如何確定私有API函數的參數?

我知道這是可能的,因爲Lite Switch X可以做到這一點。

我有迄今取得什麼:

強行退出碼頭,並呼籲CPSRegisterForKey()(這是一個私人的API函數),我可以阻止默認的CMD +選項卡無法正常工作。

第二步是爲我的應用程序註冊兩個熱鍵。這樣做的標準方式,RegisterEventHotKey(),不起作用。一些谷歌搜索和GDBing表明Dock和Lite Switch X使用CGSSetHotKeyEnabled()CGSSetHotKey()(這兩個都是私有API函數)。我遇到的問題是我不知道這些功能需要什麼參數。

如何確定私有API函數的參數?

更新:

我有一點點進一步CGSSetHotKey()

OSErr setupResult = CGSSetHotKey(_CGSDefaultConnection(), unknownArg, unknownArg, unknownArg, kCGEventFlagMaskCommand, ???, ???, ...);

回答

1

您是否嘗試過使用class-dump?這通常很有幫助。

+0

關閉但沒有雪茄!這些調用都是普通的C,而不是Objective-C。但是,它仍然有用。謝謝! – 2010-06-18 22:46:43

+0

哎呀!你絕對正確。正如你所做的那樣,你可以使用'gdb'連接到Finder,但是你沒有這些共享庫的符號。一個有趣的挑戰... – 2010-06-19 01:14:56

相關問題