2017-09-06 5 views
1

내 노트북에는 마우스와 터치 패드가 있습니다. 나는 새로운 위치뿐만 아니라 어디서 왔는지를 알려주는 mousemove를위한 글로벌 훅을 원합니다. 터치 패드에만 관심이 있기 때문에 터치 패드에만 후크를 구독하는 것이 더 나은 해결책이 될 것입니다. 후크는 시스템 전체에서 작동해야합니다 (내 애플리케이션에 초점이 맞지 않아도).여러 마우스 장치의 mousemove 입력을 어떻게 차별화 할 수 있습니까?

어떻게하면됩니까?

나는 당신이 P-Invoke user32.getrawinputdeviceinfo를 사용할 수 있습니다 내 C#/WPF 응용 프로그램

답변

1

에서의 PInvoke를 사용하는 것을 두려워하지 않다. 장치에 대해,

[StructLayout(LayoutKind.Sequential)] 
internal struct RID_DEVICE_INFO_MOUSE 
{ 
    [MarshalAs(UnmanagedType.U4)] 
    public int dwId; 
    [MarshalAs(UnmanagedType.U4)] 
    public int dwNumberOfButtons; 
    [MarshalAs(UnmanagedType.U4)] 
    public int dwSampleRate; 
    [MarshalAs(UnmanagedType.U4)] 
    public int fHasHorizontalWheel; 
} 

과 : 마우스 입력을 위해 당신은 일을 얻을 수

StructLayout(LayoutKind.Sequential)] 
internal struct RID_DEVICE_INFO_HID 
{ 
    [MarshalAs(UnmanagedType.U4)] 
    public int dwVendorId; 
    [MarshalAs(UnmanagedType.U4)] 
    public int dwProductId; 
    [MarshalAs(UnmanagedType.U4)] 
    public int dwVersionNumber; 
    [MarshalAs(UnmanagedType.U2)] 
    public ushort usUsagePage; 
    [MarshalAs(UnmanagedType.U2)] 
    public ushort usUsage; 
} 
관련 문제