2011-04-18 3 views
3


나는 XBUTTON 이벤트를 캡처해야하는 C#에서 저수준 마우스 훅을 작성했습니다. 1, 2 번째 xButton의 경우에는 정상적으로 작동하지만 마우스의 3 번째 xButton에 대한 메시지는 없습니다. 해당 버튼에 대한 이벤트를 캡처 할 수있는 방법이없는 것 같습니다.세 번째 X-Mouse 버튼을 연결하고 있습니까?

나는 게임용 마우스가 있으며 두 개의 첫 번째 xButton 사이에는 세 번째 xButton이 있습니다. 그것을 클릭하면 아무 일도 일어나지 않기 때문에 버튼에 대한 사용자 지정 동작을 프로그래밍하기 위해 사용자 지정 C# Mouse-Hook 응용 프로그램을 작성하려고합니다 ...

답변

3

맞습니다. 세 번째 X 버튼은 Windows가 아닌 마우스 드라이버에서 처리합니다. Windows에는 두 개 이상의 X 버튼에 대한 기본 지식이나 지원이 없습니다. 추가 버튼은 특수 드라이버를 설치하지 않고는 아무 것도하지 않습니다.

마우스 드라이버 소프트웨어와 통신하는 방법을 알아야합니다. 이 버튼 만 클릭하면 알림을받을 수있는 유일한 방법입니다.

+0

하지만 LL- 마우스 - 후크에 의해 호출되는 HookProc의 lParam은 MSLLHOOKSTRUCT를 가리 킵니다. 'mouseData'라는 DWORD 필드가 있습니다. 해당 필드의 상위 단어는 x 버튼을 클릭했음을 나타냅니다. 지금 가능한 값은 1과 2입니다 (xButton1과 xButton2의 경우). 그러나 mouseData의 상위 단어가 3으로 설정된 상태에서 윈도우가 후크를 호출 할 수 없습니까? – alex

+2

@alex : 예, 맞습니다. 그리고 네, 이론적으로 가능할 것입니다. 그러나 아직 구현되지 않았습니다. Windows 95 에서처럼 스크롤 휠을 기본적으로 지원하지 않았습니다. Windows 2000까지는 추가되지 않았습니다. MS의 IntelliMouse 드라이버 나 마우스와 함께 제공되는 다른 타사 드라이버 만 있으면됩니다. 같은 상황. 윈도우즈는 세번째 X 버튼에 대해 아무것도 모르고 있으며'mouseData'가 3으로 설정된 이벤트를 발생시키지 않을 것입니다. 문서는 단지 잊지 않았을뿐입니다. –

+0

네, 도와 줘서 고마워. 방금 드라이버 CD를 찾았습니다. 이제 설치하겠습니다. Logitech 소프트웨어에서 버튼을 클릭 할 때 수행 할 작업을 알려주는 방법이 있습니까? – alex

관련 문제