Измените NSEvent, чтобы отправить другое клавиша, чем та, которая была нажата

Я пытаюсь создать перехватчик клавиатуры OS X для вспомогательных технологий (т.е. не волнуйтесь, это не кейлоггер) .

Когда пользователь нажимает клавишу, я хочу предотвратить настоящее нажатие клавиши и вместо этого отправить поддельное нажатие клавиши (выбранный мной символ).

У меня есть следующее код:

- (void) hookTheKeyboard {
    CGEventMask keyboardMask = CGEventMaskBit(kCGEventKeyDown);
    id eventHandler = [NSEvent addGlobalMonitorForEventsMatchingMask:keyboardMask handler:^(NSEvent *keyboardEvent) {
        NSLog(@"keyDown: %c", [[keyboardEvent characters] characterAtIndex:0]);
        //Want to: Stop the keyboard input
        //Want to: Send another key input instead
    }];
}

Есть ли помощь в достижении любой из этих целей? По сути, модифицируем NSEvent "keyboardEvent" для отправки другого символа. Спасибо.

21
задан cksubs 26 April 2011 в 03:37
поделиться