|
후킹하려면 골아파지고 요즘 보안 솔류션들 때문에 후킹 프로세스 등록이 수월치 않습니다.
그냥 TForm에 TTimer 하나 올리시고,
시간 간격(interval) 10ms로 설정하시고 OnTimer 이벤트에 GetCursorPos API 쓰셔서 마우스 위치 읽어오시면 됩니다. 그래서 이전 OnTimer때 저장한 값이랑 비교하면 마우스 움직임 여부를 체크할 수 있지요.
실시간이 아닌 것 같다고요?
마우스 폴링 레이트가 PS/2의 경우 100Hz 이고, USB의 경우 150Hz이기 때문에
10ms에 한 번만 마우스 위치를 읽어오면 PS/2 마우스와 동기되도록 마우스 값을 읽어올 수 있습니다.
마우스 폴링이 100Hz라는 것은 마우스가 데이터 전송하는 시간 간격이 10ms이라는 것이니까요.
간단하게 이야기해서 10ms보다 빨리 마우스 값을 읽어도 아무 소용 없다는 의미죠.
물론 로지텍에 6만원 넘어가는 USB 방식의 고가 모델의 마우스들은 SetPoint 유틸리티 설치하면 폴링이 1000 Hz인 것들도 있습니다. 그건 예외니까 알아서 해결하세용 ㅡㅡ;
|