2013-01-11 1 views
2

이것은 다소 이상한 질문 일지 모르지만 마우스의 소프트웨어는 어떻게 작동합니까?마우스는 어떻게 작동합니까?

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

하지만이 뛰어 커서의 원인 (심지어 가끔 지연) :

내가 OSX 주위에 마우스를 이동하려면

(특히 OSX에),이 코드를 사용하고있다. 마우스 (또는 트랙 패드)는 어떻게 그토록 유동적입니까? 그들이 사용하는 API는 무엇입니까?

마찬가지로이 코드를 사용하여 도크 위로 커서를 이동하면 트랙 패드를 사용하여 정상적으로 커서를 이동해도 도크가 확대되지 않습니다 (배율이 켜짐). 왜?

+0

사용자 마우스 움직임을 시뮬레이트 (이 효과가 트리거 될 수있는 UI에 대한 모든 효과 사용) 하시겠습니까? 아니면 OS가 마우스 이벤트를 실제로 추적, 처리 및 전달하는지 알고 싶습니까? – Thilo

+0

@Thilo 시뮬레이트하고 싶습니다만, 위의 코드에서 설명한 것처럼 모든 UI 효과와 변경 사항이 적용되지만 모든 UI 변경 사항이 트리거되지만 모든 UI 변경 사항이 트리거되지는 않습니다. –

답변

3

귀하의 질문은 "마우스 장치 드라이버은 어떻게 작동합니까?"

IOKit, 특히 HID family을 살펴 봐야합니다.

마우스 움직임을 시뮬레이트하려는 경우 CGEventCreateMouseEvent으로 마우스 이벤트를 만든 다음 CGEventPost으로 게시 할 수 있습니다.

관련 문제