Что ж, я попал в ту же ситуацию, и вам нужно либо использовать класс Control в System.Windows.Forms, либо следовать инструкциям этого решения и адаптировать его к миру C #
Меня особенно заинтересовал ключ прописных букв, поэтому я сделал:
[DllImport("/System/Library/Frameworks/ApplicationServices.framework/ApplicationServices")]
public static extern long CGEventSourceFlagsState(int keyCode);
bool CapsLock = (CGEventSourceFlagsState(1) & 0x00010000) != 0;
Надеюсь, это поможет!