Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
        }