gpt4 book ai didi

macos - 用于辅助键盘的 OSX HID 过滤器?

转载 作者:行者123 更新时间:2023-12-03 16:07:42 34 4
gpt4 key购买 nike

我想过滤第二个键盘上的键盘输入,并防止第二个键盘的按键事件到达操作系统(自己处理它们)。如何做到这一点?

最佳答案

可以通过使用 IOKit 和 HIDManager 类来完成。

如果需要对键盘进行独占访问,可以使用kIOHIDOptionsTypeSeizeDevice选项,但程序必须以root权限运行。

获取此结果所需的代码 stub 如下所示:

// Create a manager instance
IOHIDManagerRef manager = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDManagerOptionNone);

if (CFGetTypeID(manager) != IOHIDManagerGetTypeID()) {
exit(1);
}

// Setup device filtering using IOHIDManagerSetDeviceMatching
//matchingdict = ...
IOHIDManagerSetDeviceMatching(manager, matchingdict);

// Setup callbacks
IOHIDManagerRegisterDeviceMatchingCallback(manager, Handle_DeviceMatchingCallback, null);
IOHIDManagerRegisterDeviceRemovalCallback(manager, Handle_RemovalCallback, null);
IOHIDManagerRegisterInputValueCallback(manager, Handle_InputCallback, null);

// Open the manager and schedule it with the run loop
IOHIDManagerOpen(manager, kIOHIDOptionsTypeSeizeDevice);
IOHIDManagerScheduleWithRunLoop(manager, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);

// Start the run loop
//...

更多详细信息可以在此处的 Apple 文档中找到:http://developer.apple.com/library/mac/#documentation/DeviceDrivers/Conceptual/HID/new_api_10_5/tn2187.html

我的应用程序使用的完整代码可以在这里找到: https://gist.github.com/3783042

关于macos - 用于辅助键盘的 OSX HID 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676135/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com