在Mac OSX中等效于GetKeyNameText()

时间:2019-12-04 11:57:05

标签: macos keyboard event-handling

在Windows中,GetKeyNameText()提供键盘事件中按下的键的文本。

    WCHAR szBuffer[MAX_PATH];
    ZeroMemory(szBuffer, sizeof(szBuffer));
    if (!GetKeyNameText(sc_value << 16, szBuffer, MAX_PATH))
    {
       // error stuff here.
    }
    to_string(szBuffer)

其中to_string是将缓冲区转换为字符串的辅助函数。

Mac OSX中是否有任何类似的API可用于获取密钥的显示文本。我正在使用CGEvent C API接收键盘事件。

    m_event_tap = CGEventTapCreate(kCGSessionEventTap, kCGHeadInsertEventTap, options, eventMask,
                                   input_event_callback, this);

在回调中,我得到如下的关键代码:

CGEventRef input_event_callback(CGEventTapProxy proxy, CGEventType type, CGEventRef event,
                                                              void *refcon)
        {
                CGKeyCode kc = CGEventGetIntegerValueField(event, kCGKeyboardEventKeycode);

}

0 个答案:

没有答案
相关问题