小编Iva*_*pan的帖子

为什么这个键盘拦截内核扩展不起作用?

我的开发人员!我非常希望至少你们中的一些人不会被这个问题包含的文本数量所吓倒(我只是尽力做到人道可能的描述).:)

对于那些认为我已经问过这个问题来编写恶意软件或其他东西的人.我想编写一个应用程序,允许用户选择在操作系统完成启动后启动的应用程序.整个想法是允许用户在操作系统完成启动之前通过按下之前绑定到应用程序的热键来选择这些应用程序.例如,用户打开他的Mac,键入SMTV并消失,当系统完成启动我的应用程序恢复输入并启动Safari,Mail,Tweetie和Vuze.我是新手,但我尽力帮助别人回答他们的问题 - 我想我可以期待同样的回报.检查我的个人资料和我的活动,然后开始尖叫恶意软件.

这个问题是问题的后续问题是否有可能恢复在Mac OS启动时完成的键盘输入?.

Pekka的建议的指导下,我偶然发现了Christian Starkjohann 的一篇文章拦截键盘事件,描述了他和目标开发团队如何成功地将iBook的CDROM弹出键从F12重新分配到Shift + F12.主要部分是他们实际上拦截了键盘事件,这正是我所需要的.最后,Christian完全为像我这样的开发人员写了这篇文章,将iJect的想法用作类似功能的原型.

首先,我决定创建一个简单的内核扩展来简单地记录用户的键盘输入/var/log/kernel.log.我在XCode中启动了一个新的通用内核扩展项目,遵循Hello内核的指示:Mac开发中心的内核扩展概念中找到的使用Xcode创建内核扩展教程创建一个Hello World项目,然后用来自的代码填充它iJect消息来源.结果如下:

TestKEXT.c

#include <sys/systm.h>
#include <mach/mach_types.h>


extern int HidHackLoad(void);
extern int HidHackUnload(void);


kern_return_t MacOSSCKEXT_start (kmod_info_t * ki, void * d) {
    return HidHackLoad() == 0 ? KERN_SUCCESS : KERN_FAILURE;
}


kern_return_t MacOSSCKEXT_stop (kmod_info_t * ki, void * d) {
    return HidHackUnload() == 0 ? KERN_SUCCESS : KERN_FAILURE;
} …
Run Code Online (Sandbox Code Playgroud)

c++ keyboard macos kernel-extension

5
推荐指数
1
解决办法
1708
查看次数

iOS - 如何回收具有半透明黑色状态栏的故事板中的前20px

我的状态栏后面有20px的问题,特别是我不能放任何东西.

当我创建UI时,我使用了故事板方法并将状态栏样式设置为半透明黑色.但是当Xcode中的布局时,我的视图的高度固定为460px(灰显).

请帮忙.


得到朋友的回答,一旦他在这里发布,就会将他的解决方案标记为正确答案.现在这里是解决方案:

  1. 在Interface Builder中,将视图控制器设置为需要全屏和自由格式:http://cl.ly/0x1p1u3q3B1y3b3C3U2n
  2. 然后在视图的大小设置中将其高度设置为480px:http://cl.ly/1p1b0e060p1Y37393D08
  3. 确保Info.plist中状态栏样式为半透明黑色:http://cl.ly/153Y391S1b0G3J3z3Y1O
  4. 获得满意的结果:http://cl.ly/0Q1M390i3A3h2F3u2T19

user-interface xcode view storyboard ios

3
推荐指数
1
解决办法
9370
查看次数