public static List<Device> PopulateDevices() { var devices = new List<Device>(); var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPSignedDriver"); foreach (var obj in searcher.Get()) { var inf = GetProperty(obj, "InfName"); var description = GetProperty(obj, "Description"); var classGUID = GetProperty(obj, "ClassGuid"); var provider = GetProperty(obj, "DriverProviderName"); if(classGUID.Equals("NA") || inf.Equals("NA")) continue; var device = new Device(inf, classGUID, null, provider, description); devices.Add(device); } return devices; }
private void SaveFiles(Device device, string saveDir, List<string> search) { progressBar2.Invoke(new Action(() => progressBar2.Maximum = device.Files.Count)); progressBar2.Invoke(new Action(() => progressBar2.Value = 0)); for (int i = 0; i < device.Files.Count; i++) { currentLbl.Invoke(new Action(() => currentLbl.Text = device.Files[i])); var src = FindFile(device.Files[i], search); if(src != null) File.Copy(src, Path.Combine(saveDir, Path.GetFileName(src)), true); progressBar2.Invoke(new Action(() => progressBar2.Value = i + 1)); } }