2011-12-29 69 views
6

可能重複:
OSX HID Filter for Secondary Keyboard?如何在Mac OSX上僅在具有特定HID的鍵盤上使用鍵盤事件?

我想編寫一個第二鍵盤上捕獲鍵盤事件的Mac OSX應用程序和使用他們得到通知的其他應用程序之前?我的應用程序沒有被通知主計算機鍵盤上的按鍵,只是第二個按鍵。我不想讓其他應用程序獲得按鍵,我想要消耗它。這裏的任何人都知道最好的方式去做這件事?

+0

@GaretJax你從我的其他問題的答案完美地解決了我的問題。這裏的鏈接爲他人的利益在這裏:[鏈接](http://stackoverflow.com/questions/8676135/osx-hid-filter-for-secondary-keyboard) – JayGee 2014-03-13 23:15:36

回答

0

您將需要IOKit來執行此操作。代碼將涉及編寫kext和攔截鍵盤事件並選擇是否將它們傳遞給用戶空間。在這裏寫整個方法會太複雜和大,但我可以建議一些參考。

KeyRemap4MacBook的代碼有很多低級代碼用於設備讀取和攔截。

這裏是習俗KEXT,作者寫道:https://github.com/tekezo/KeyRemap4MacBook/tree/master/src/core/kext

我建議你看看代碼,看看他是如何截獲按鍵,可根據用戶的配置重新映射它們,並將它們發送到用戶空間。

+1

你大多是正確的,但正如我在此期間發現,您可以避免編寫kext並使用用戶空間HID庫與kIOHIDOptionsTypeSeizeDevice一起訪問所選設備 – GaretJax 2012-09-25 16:30:37

+0

我記得嘗試使用用戶的Apple文檔中的「HID LED測試工具」示例空間HID管理器(在OSX 10.8上),我還沒有正常工作。開箱即用,應用程序崩潰。看起來這個例子是爲Leopard構建的,並且從那以後還沒有更新過。我還沒有找到任何最新的例子。 – 2012-09-26 09:59:40