如何确定私有 API 函数的参数?
我想创建应用程序切换器的替代品(又名“cmd + tab”)。
我知道这是可能的,因为 Lite Switch X 做到了。
到目前为止我所取得的成就:
通过强制退出扩展坞并调用 CPSRegisterForKey() (这是一个私有 API 函数),我可以阻止默认的 cmd+tab 工作。
第二步是注册我的应用程序的热键。执行此操作的标准方法 RegisterEventHotKey()
不起作用。谷歌搜索和 GDBing 表明 Dock 和 Lite Switch X 使用 CGSSetHotKeyEnabled()
和 CGSSetHotKey()
(这两个都是私有 API 函数)。我遇到的问题是我不知道这些函数采用什么参数。
如何确定私有 API 函数的参数?
更新:
我对CGSSetHotKey()
有进一步了解:
OSErr setupResult = CGSSetHotKey(_CGSDefaultConnection(),unknownArg,unknownArg,unknownArg,kCGEventFlagMaskCommand,?? ?, ???, ...);
I want to create a replacement for the app switcher (aka 'cmd + tab').
I know that it's possible because Lite Switch X does it.
What I've got achieved so far:
By force quitting the dock and calling CPSRegisterForKey()
(which is a private API function) I can prevent the default cmd+tab from working.
The second step is two register the hot key for my app. The standard way of doing this, RegisterEventHotKey()
, doesn't work. A bit of googling and GDBing suggests that the Dock and Lite Switch X use CGSSetHotKeyEnabled()
and CGSSetHotKey()
(both of these are private API functions). The problem I have is that I do not know what arguments these functions take.
How can I determine the arguments for a private API function?
Update:
I've got a little further with CGSSetHotKey()
:
OSErr setupResult = CGSSetHotKey(_CGSDefaultConnection(), unknownArg, unknownArg, unknownArg, kCGEventFlagMaskCommand, ???, ???, ...);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否尝试过使用 class-dump ?这通常很有帮助。
Have you tried using class-dump? It's usually pretty helpful.