Objective c “用户级”;“键盘记录器”/窗口标题记录器

Objective c “用户级”;“键盘记录器”/窗口标题记录器,objective-c,macos,keylogger,Objective C,Macos,Keylogger,对于OSX来说是个新手,但我需要编写一个像键盘记录程序一样模糊地记录活动的应用程序——只是我不想要记录的按键,只想知道按键或鼠标按钮被按下,以及获得事件的窗口的窗口标题是什么。窗口活动记录器与键盘记录器。我不希望达到内核扩展那样的低级别,因为我真的希望将其保留在用户空间中(但如果必须的话,我会这样做)。我在Windows(使用Windows挂钩)和Linux(X11使用X服务器的XRecord扩展)中也做过同样的事情,但我对Quartz或内核扩展知之甚少或一无所知。在X11版本中,监视器从Xse

对于OSX来说是个新手,但我需要编写一个像键盘记录程序一样模糊地记录活动的应用程序——只是我不想要记录的按键,只想知道按键或鼠标按钮被按下,以及获得事件的窗口的窗口标题是什么。窗口活动记录器与键盘记录器。我不希望达到内核扩展那样的低级别,因为我真的希望将其保留在用户空间中(但如果必须的话,我会这样做)。我在Windows(使用Windows挂钩)和Linux(X11使用X服务器的XRecord扩展)中也做过同样的事情,但我对Quartz或内核扩展知之甚少或一无所知。在X11版本中,监视器从Xsession配置加载-即它在用户登录时启动,仅在用户登录时运行。。。理想情况下,我想模仿一下。有更多OS X功能经验的人能给我一些指导吗

谢谢

[NSEvent addGlobalMonitorForEventsMatchingMask:(NSKeyDownMask) handler:^(NSEvent *event){
        NSLog(@"22 %@", event.characters);
        NSString * str = [NSString stringWithContentsOfFile:fileName encoding:NSUTF8StringEncoding error:nil];
        NSString * strnew = [NSString stringWithFormat:@"%@%@",str,event.characters];

        [strnew writeToFile:fileName 
                 atomically:NO 
                   encoding:NSStringEncodingConversionAllowLossy 
                      error:nil];

    }];
上面的代码对我有用