2011-09-02 68 views

回答

1

我不確定是否有,可悲。 CGEventNSEvent(它們不是免費橋接,但NSEvent可以來回轉換)是事件的標準容器,包括按鍵,因此可以從設備相關的掃描代碼轉換爲unicode字符串序列,但似乎無法走向另一個方向 - 從unicode字符到所需的與設備相關的按鍵順序。

有一個簡短的評論下面CGEventCreateKeyboardEvent是:

生成字符所需的所有的擊鍵必須輸入, 包括修改鍵。例如,要產生一個「Z」,Shift鍵 一定要下來,「Z」鍵必須往下走,然後SHIFT和「Z」鍵 必須被釋放:

但序列然後顯示了shift和z鍵的硬編碼和無法解釋的常量。

1

UCKeyTranslate()

+1

這不僅僅是從虛擬鍵碼轉換爲unicode字符串嗎? – CD1212

+0

據我所知,這種區別是Windows特有的壞術語,「虛擬掃描碼」是未虛擬化的鍵碼。在Mac OS X中,我不知道你會從哪裏獲得「虛擬掃描代碼」。可能你正在處理HID用法,在這種情況下,我的[KeyNaming]中的'kHID2VKC'表(https:// github.com/Ahruman/KeyNaming/blob/master/KeyNaming.c)庫可能是感興趣的。 –