void CleanupDevices() { DeviceInfo[] offline; DeviceInfo[] problem; DeviceInfo[] unknown; GetDevices(out offline, out problem, out unknown); var list = new List <DeviceInfo>(); list.AddRange(offline); list.AddRange(problem); list.AddRange(unknown); for (int i = 0; i < list.Count; i++) { if (!IsHandleCreated) { return; } var item = list[i]; ControlsHelper.BeginInvoke(() => { LogTextBox.Text = string.Format("{0}/{1} - {2}", i + 1, list.Count, item.Description); }); DeviceDetector.RemoveDevice(item.DeviceId); } ControlsHelper.BeginInvoke(() => { LogTextBox.Text = string.Format("{0} devices removed", list.Count); }); }
void CleanupDevices() { DeviceInfo[] offline; DeviceInfo[] problem; DeviceInfo[] unknown; GetDevices(out offline, out problem, out unknown); var list = new List <DeviceInfo>(); list.AddRange(offline); list.AddRange(problem); list.AddRange(unknown); for (int i = 0; i < list.Count; i++) { if (Disposing || IsDisposed) { return; } var item = list[i]; BeginInvoke((MethodInvoker) delegate() { LogTextBox.Text = string.Format("{0}/{1} - {2}", i + 1, list.Count, item.Description); }); DeviceDetector.RemoveDevice(item.DeviceId); } BeginInvoke((MethodInvoker) delegate() { LogTextBox.Text = string.Format("{0} devices removed", list.Count); }); }
/// <summary> /// Must remove and re-add devices for HidGuardian filters to take effect. /// </summary> static void ResetDevices(params string[] deviceIds) { foreach (var hwid in deviceIds) { DeviceDetector.RemoveDevice(hwid); } DeviceDetector.ScanForHardwareChanges(); }