问候.我试着让孩子控制应用程序.键盘记录器是此应用程序的一部分.我使用CGEventTapCreate来观看键盘.这很好用,但有时我会重复关键事件.它们没有设置[NSEvent isARepeat],只是重复.例如,我可以输入"qwerty"但应用程序会获取这些字符的关键事件:"qqwweerrttyy".也许有人经历过这样的喜欢吗?我在10.5和10.6上都遇到了这个问题(两者都是英特尔).
我在这里发布键盘记录器安装和处理程序方法:
- (BOOL)installKeyboardLogger
{
  CGEventMask keyboardMask = CGEventMaskBit(kCGEventKeyDown);
  CGEventMask mouseMask = CGEventMaskBit(kCGEventMouseMoved) |   CGEventMaskBit(kCGEventLeftMouseDown) |
      CGEventMaskBit(kCGEventRightMouseDown);
  CGEventMask mask = keyboardMask + mouseMask;// + mouseMask;//CGEventMaskBit(kCGEventKeyDown) | CGEventMaskBit(kCGEventMouseMoved);
  // Try to create keyboard-only hook. It will fail if Assistive Devices are not set.
  mMachPortRef =  CGEventTapCreate(
                                   kCGAnnotatedSessionEventTap,
                                   kCGTailAppendEventTap, // kCGHeadInsertEventTap
                                   kCGEventTapOptionListenOnly,
                                   keyboardMask,
                                   (CGEventTapCallBack)eventTapFunction,
                                   self );
  if (!mMachPortRef)
    [mLogFile logNeedAssistiveDevice: @"Can't install keyboard hook."];
  else
    CFRelease(mMachPortRef);
  mMachPortRef = CGEventTapCreate(
                                  kCGAnnotatedSessionEventTap,
                                  kCGTailAppendEventTap, // kCGHeadInsertEventTap
                                  kCGEventTapOptionListenOnly,
                                  mask,
                                  (CGEventTapCallBack)eventTapFunction,
                                  self );
  if (!mMachPortRef)
  { …我正在用C++编写一个软件来控制MacBook Pro上的键盘背光,它运行Arch Linux作为主操作系统和Debian运行的funzies.该程序作为守护程序运行,现在可以打开键盘背光.下一步是让它密切关注计算机何时空闲(基于鼠标和键盘的交互)以及何时空闲一段时间,关闭背光,并且一旦注册了与键盘或鼠标的交互,再次打开背光.
我已经google了一下,但是我找不到任何可以检查最后鼠标和/或键盘交互的注册时间.
有什么想法,我怎么能做到这一点?我相信在任何Linux操作系统(也许是X?)的某些部分已经存在这样的功能,所以使用它会更好,而不是从头开始编写.
问候,...