鼠标是如何工作的?

时间:2013-01-11 05:39:41

标签: objective-c macos cursor mouse

这可能是一个奇怪的问题,但鼠标的软件如何工作? (特别是在OSX上)

如果我想在OSX上移动鼠标,我一直在使用这段代码:

CGAssociateMouseAndMouseCursorPosition(0);
CGWarpMouseCursorPosition(point); // point is of type NSPoint
CGAssociateMouseAndMouseCursorPosition (1);

但是这会导致光标跳跃(甚至偶尔会滞后)。鼠标(或触控板)如何使它如此流畅?他们使用什么API?

同样,如果我使用此代码将光标移动到底座上,例如,底座不会放大(放大打开),即使使用触控板正常移动光标也可以正常工作。为什么呢?

1 个答案:

答案 0 :(得分:3)

您的问题应该是“鼠标设备驱动程序如何工作?”

您应该查看IOKit,尤其是HID family

如果您只想模拟鼠标移动,还可以尝试使用CGEventCreateMouseEvent创建鼠标事件,然后使用CGEventPost发布。