private static bool IsAppleWirelessKeyboard(int vid, int pid) { if (vid != VIDApple) { return(false); } Guid HIDGUID; HIDImports.HidD_GetHidGuid(out HIDGUID); IntPtr DeviceInfo = HIDImports.SetupDiGetClassDevs(ref HIDGUID, null, IntPtr.Zero, 16); uint MemberIndex = 0; HIDImports.SP_DEVINFO_DATA DID = new HIDImports.SP_DEVINFO_DATA() { cbSize = (uint)Marshal.SizeOf(typeof(HIDImports.SP_DEVINFO_DATA)) }; while (HIDImports.SetupDiEnumDeviceInfo(DeviceInfo, MemberIndex++, ref DID)) { uint RequiredSize = 0; uint PropertyDataType = 0; IntPtr buffer = Marshal.AllocHGlobal(512); string CLASS = ""; if (HIDImports.SetupDiGetDeviceRegistryProperty(DeviceInfo, ref DID, (uint)HIDImports.SPDRP.SPDRP_CLASS, out PropertyDataType, buffer, 512, out RequiredSize)) { CLASS = Marshal.PtrToStringAuto(buffer); } if (CLASS.Equals("Keyboard", StringComparison.InvariantCultureIgnoreCase)) { return(true); } } HIDImports.SetupDiDestroyDeviceInfoList(DeviceInfo); return(true); }
private static bool IsAppleWirelessKeyboard(int vid, int pid) { if (vid != VIDApple) return false; Guid HIDGUID; HIDImports.HidD_GetHidGuid(out HIDGUID); IntPtr DeviceInfo = HIDImports.SetupDiGetClassDevs(ref HIDGUID, null, IntPtr.Zero, 16); uint MemberIndex = 0; HIDImports.SP_DEVINFO_DATA DID = new HIDImports.SP_DEVINFO_DATA() { cbSize = (uint)Marshal.SizeOf(typeof(HIDImports.SP_DEVINFO_DATA)) }; while (HIDImports.SetupDiEnumDeviceInfo(DeviceInfo, MemberIndex++, ref DID)) { uint RequiredSize = 0; uint PropertyDataType = 0; IntPtr buffer = Marshal.AllocHGlobal(512); string CLASS = ""; if (HIDImports.SetupDiGetDeviceRegistryProperty(DeviceInfo, ref DID, (uint)HIDImports.SPDRP.SPDRP_CLASS, out PropertyDataType, buffer, 512, out RequiredSize)) CLASS = Marshal.PtrToStringAuto(buffer); if (CLASS.Equals("Keyboard", StringComparison.InvariantCultureIgnoreCase)) return true; } HIDImports.SetupDiDestroyDeviceInfoList(DeviceInfo); return true; }