/// <summary> /// Erzeugt eine neue Empfangseinheit. /// </summary> /// <param name="usagePage">Die Hauptkategorie des Gerätes.</param> /// <param name="usage">Die Unterkategorie des Gerätes.</param> /// <param name="window">Optional das Fenster, das die Benachrichtigungen erhalten soll.</param> /// <returns>Die angeforderte Empfangseinheit.</returns> public static RawInputSink Create(ushort usagePage, ushort usage, IntPtr window) { // Create registration structure var register = new _RawInputDevice[] { new _RawInputDevice { usUsagePage = usagePage, usUsage = usage, hwndTarget = window, dwFlags = 0 }, }; // Override flags if (window != IntPtr.Zero) { register[0].dwFlags |= 0x00000100; } // Process if (!RegisterRawInputDevices(register, register.Length, _RawInputDevice.SizeOf)) { throw new InvalidOperationException(); } // Report return(new RawInputSink()); }
/// <summary> /// Erzeugt eine neue Empfangseinheit. /// </summary> /// <param name="window">Optional das Fenster, das die Benachrichtigungen erhalten soll.</param> /// <returns>Die angeforderte Empfangseinheit.</returns> public static RawInputSink Create(IntPtr window) { // Create registration structure var register = new _RawInputDevice[] { // RC new _RawInputDevice { usUsagePage = 12, usUsage = 1, hwndTarget = window, dwFlags = 0 }, // RC new _RawInputDevice { usUsagePage = 0xffbc, usUsage = 0x88, hwndTarget = window, dwFlags = 0 }, // Keyboard new _RawInputDevice { usUsagePage = 1, usUsage = 6, hwndTarget = window, dwFlags = 0x00000230 }, }; // Override flags if (window != IntPtr.Zero) { for (int i = register.Length; i-- > 0;) { register[i].dwFlags |= 0x00000100; } } // Process if (!RegisterRawInputDevices(register, register.Length, _RawInputDevice.SizeOf)) { throw new InvalidOperationException(); } // Report return(new RawInputSink()); }
/// <summary> /// Erzeugt eine neue Empfangseinheit. /// </summary> /// <param name="usagePage">Die Hauptkategorie des Gerätes.</param> /// <param name="usage">Die Unterkategorie des Gerätes.</param> /// <param name="window">Optional das Fenster, das die Benachrichtigungen erhalten soll.</param> /// <returns>Die angeforderte Empfangseinheit.</returns> public static RawInputSink Create( ushort usagePage, ushort usage, IntPtr window ) { // Create registration structure var register = new _RawInputDevice[] { new _RawInputDevice { usUsagePage = usagePage, usUsage = usage, hwndTarget = window, dwFlags = 0 }, }; // Override flags if (window != IntPtr.Zero) register[0].dwFlags |= 0x00000100; // Process if (!RegisterRawInputDevices( register, register.Length, _RawInputDevice.SizeOf )) throw new InvalidOperationException(); // Report return new RawInputSink(); }
/// <summary> /// Erzeugt eine neue Empfangseinheit. /// </summary> /// <param name="window">Optional das Fenster, das die Benachrichtigungen erhalten soll.</param> /// <returns>Die angeforderte Empfangseinheit.</returns> public static RawInputSink Create( IntPtr window ) { // Create registration structure var register = new _RawInputDevice[] { // RC new _RawInputDevice { usUsagePage = 12, usUsage = 1, hwndTarget = window, dwFlags = 0 }, // RC new _RawInputDevice { usUsagePage = 0xffbc, usUsage = 0x88, hwndTarget = window, dwFlags = 0 }, // Keyboard new _RawInputDevice { usUsagePage = 1, usUsage = 6, hwndTarget = window, dwFlags = 0x00000230 }, }; // Override flags if (window != IntPtr.Zero) for (int i = register.Length; i-- > 0; ) register[i].dwFlags |= 0x00000100; // Process if (!RegisterRawInputDevices( register, register.Length, _RawInputDevice.SizeOf )) throw new InvalidOperationException(); // Report return new RawInputSink(); }
private static extern bool RegisterRawInputDevices( _RawInputDevice[] pRawInputDevices, Int32 uiNumDevices, Int32 cbSize );