2010-02-18 94 views
0

我試圖以編程方式發送修改的鍵盤輸入,例如大寫字母「A」。問題是換檔修改器似乎沒有任何效果。Carbon - OS X - 使用CGEventPost發送修改的鍵盤事件

在我的代碼中,我有兩個事件,一個用於shift鍵,另一個用於'm'鍵。

CGEventRef mDown = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)46, true); 

CGEventRef shiftDown = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)56, true); 

    CGEventPost(kCGAnnotatedSessionEventTap, shiftDown); 
    CGEventPost(kCGAnnotatedSessionEventTap, mDown);} 
    CFRelease(shiftDown); 
    CFRelease(mDown); 

結果不幸總是一個小例子'm'!

任何幫助,將不勝感激。

回答

2

您應該改用CGEventKeyboardSetUnicodeString。有關示例代碼,請參見here