static private void GetUnDevicesList() { Program.PrtLog(DateTime.Now + " Get devices list", true); try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE Status = 'Error' OR Service = 'vga'"); //11 - not installed, 12 - error foreach (ManagementObject obj in searcher.Get()) { if (obj == null) return; Program.PrtLog(DateTime.Now + " Obj != null", true); string name = obj.GetPropertyValue("Name").ToString(); Program.PrtLog(DateTime.Now + " Name get", true); string service; try { service = obj.GetPropertyValue("Service").ToString(); } catch { service = "none"; } Program.PrtLog(DateTime.Now + " Service get", true); if (name != null && name != "" && name != "ttnfd") { //не добавляем видеокарту в список устройств, если на ней нестандартный драйвер if (service == "vga" && name != "Стандартный VGA графический адаптер" && name != "Standart VGA Graphics Adapter") return; Program.PrtLog(DateTime.Now + " Create installator", true); Installator tempInst = new Installator(); tempInst.DevName = name; tempInst.DevID = obj.GetPropertyValue("DeviceID").ToString().Substring(0, 21); tempInst.DevDrv = "none"; Program.PrtLog(DateTime.Now + " Add installator to devices", true); Devices.Add(tempInst); } } } catch (Exception e) { Program.MakeError("Get devices list error: " + e.ToString(), "Ошибка получения списка устройств.\nСм. лог для подробностей.", 10); } }
void CheckDrivers() { button2.Enabled = false; ConsoleBox.Text += "Программа начинает поиск по базе драйверов...\n"; Program.PrtLog(DateTime.Now + " Search drivers", true); ConsoleBox.Text += "\nПоиск необходимых драйверов...\nПожалуйста, подождите!\n"; //поиск драйверов по базе int DriversFound = 0; using (StreamReader sr = new StreamReader(@"base" + Program.OSVer + ".ini")) { string str; while ((str = sr.ReadLine()) != null) { List<string> ids = GetIDs(str, ','); foreach (string s in ids) { for (int i = 0; i < Devices.Count; ++i) { if (s == Devices[i].DevID) { Installator tmp = new Installator(); tmp.DevName = Devices[i].DevName; tmp.DevID = Devices[i].DevID; tmp.DevDrv = ids[ids.Count - 1]; //последний ID - установочный файл драйвера Devices[i] = tmp; DriversFound++; } } } } } if (DriversFound == 0) { button2.Enabled = true; Program.PrtLog(DateTime.Now + " Search done. No drivers found", true); MessageBox.Show("К сожалению, программа не смогла найти ни одного драйвера для ваших устройств. :(", "Извините.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Program.PrtLog(DateTime.Now + " Search done. Printing", true); label1.Text = "Для этих устройств найдены драйверы:"; RefreshDevicesList(0, 1); if ((Devices.Count - DriversFound) != 0) { label2.Text = "Для этих устройств НЕ найдены драйверы:"; label2.Visible = true; RefreshDevicesList(1,2); listBox2.Visible = true; } button2.Enabled = true; ConsoleBox.Text += "\nПрограмма готова к установке драйверов. ;)\n"; button1.Text = "Установить драйверы"; button1.Enabled = true; DriversChecked = true; }