我正在尋找一種方法來設計一個帶有修飾鍵的小面板(例如shift,command),並且必須有可能像虛擬鍵盤那樣點擊它。CGEventPost - 按住一個按鍵(shift)
我想它有這樣的行爲:
- 點擊虛擬鍵(移)。
- 換檔按鈕持有,並一直按下。
- 用我的標準鍵盤輸入內容。
- 點擊虛擬shift鍵上的另一個時間釋放它。
這裏是我使用的代碼:
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
CGEventRef shiftKeyDown = CGEventCreateKeyboardEvent(source, (CGKeyCode)56, YES);
CGEventRef shiftKeyUp = CGEventCreateKeyboardEvent(source, (CGKeyCode)56, NO);
CGEventPost(kCGAnnotatedSessionEventTap, shiftKeyDown);
CGEventPost(kCGAnnotatedSessionEventTap, shiftKeyUp);
CFRelease(shiftKeyUp);
CFRelease(shiftKeyDown);
CFRelease(source);
我不能找到一種方法來保持按下狀態,直到我點擊它另一個時間。我雖然「按下按鈕」按鈕單元格類型是關鍵,但不幸的是沒有。 :-)
有幫助嗎?
在此先感謝。
我有一個CGEventPost類似的問題,我試圖模擬修飾鍵按住,但我發現有趣的是,當我移動我的實際鼠標或按下我的實際鍵盤上的任何鍵時,這些修改鍵將被重置,證明通過檢查內置鍵盤查看器。你的情況是一樣的嗎? – Jerry
你能解決這個問題嗎?我看到同樣的事情。 –
有同樣的問題。 – aristidesfl