2017-09-06 4 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; 
} 
関連する問題