Для меня такая же ошибка произошла, потому что я переименовал пространство имен класса Program. Поле «Объект запуска» на вкладке «Приложение» проекта все еще ссылается на старое пространство имен. Выбор нового объекта запуска решил проблему, а также удалил устаревшую запись из этого списка. Вы также можете обновить поле «По умолчанию пространство имен» на той же вкладке «Приложение».
Я нашел надежный способ размещать измененные события клавиатуры - это не следует примеру из документации Apple (которая не работает), но, похоже, имеет смысл, а главное, WORKS (РАБОТЫ).
Вместо того, чтобы посылать сообщения 'shift key down' и 'shift key up' (как указано в документации), вам нужно установить флаг модификатора на клавиатуре. Вот как вывести заглавную букву Z.
CGEventRef event1, event2;
event1 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)6, true);//'z' keydown event
CGEventSetFlags(event1, kCGEventFlagMaskShift);//set shift key down for above event
CGEventPost(kCGSessionEventTap, event1);//post event
Затем я отпускаю клавишу 'z' для полноты (также включается флаг сдвига, хотя и не уверен, что это правильно).
event2 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)6, false);
CGEventSetFlags(event2, kCGEventFlagMaskShift);
CGEventPost(kCGSessionEventTap, event2);
Наконец (и причудливо) вы должны отправить событие 'key up' для клавиши shift:
e5 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)56, false);
CGEventPost(kCGSessionEventTap, e5);
Не забудьте отпустить события, как только закончите с ними.
Надеюсь, это кому-нибудь пригодится - у меня ушло много времени на то, чтобы заставить это работать.