PDA

Показать полную графическую версию : Программа установки драйверов


Страниц : [1] 2 3 4 5

IvanVL
13-02-2009, 09:38
Написал программулину (VFP8): WorkDrv - с помощью этой программы вы сможете легко установить драйвера на устройства в вашем компьютере, такие как: материнская, звуковая, видео, сетевая платы, процессор, жесткие диски и другие.
Кратое описание
--анализирует пакеты драйверов в архивах 7z,
--отыскивает идентификаторы устройств и записывает в базу Id.dbf,
--анализирует ВСЕ устройства в диспетчере задач,представляяет выбор драйверов для установки
(при активации основного окна программы, выбор считается завершенным),
--вид окна можно увидеть в прикрепленном файле.
--распаковывает драйвера и устанавливает их.
Внимание база прошлой версии не совместима с программой версии выше 1.0
Программу можно использовать на флеш или на диске, используя соответствующие опции!

Программа подбора и установки драйверов, основной исполняемый файл WorkDrv.exe (WorkDrv.7z) Без структуры папок
Версии 1.0: добавлена возможность выбора необходимых драйверов
Версия 1.0.1: 1. исправлена ошибка: программа не проверяла наличие 7z.dll, при отсутствии которой (если не установлен 7z), программа ----------------------не работала корректно.
---------------------Измене интерфейс, учтены некоторые пожелания bogomolv
Версия 1.1 добавлена поддержка работы с мониторами.
--------------устранена ошибка, при которой в базу могли попасть информация из старых inf
Версия 2.0 Переделан алгоритм работы с inf, ранее inf файлы рассматривались как обычные текстовые, теперь как структурированный _________файл, соответственно закоментированные строки не попадают в базу,
--------------Устранена ошибка теперь попадают в базу инфы написанные в unicod, ранее не попадали
Версия 2.1 Работа ведется по ВСЕМ устройствам компьтера, используются полные идентификаторы
Версия 2.2 Настройки перенесены в ini файл
--------------Устранена ошибка: чувствительность к регистру идентификаторов
Версия 3.0 Извлечение как Hardware ID's так и Compatible ID's с помощью API функций, установка драйверов с помощью API функций,
--------------тем самым устраняется ошибка озвученная в http://forum.oszone.net/post-1054992-36.html спасибо mamont1
--------------Пакеты драйверов можно выбирать, предварительно список заполняется по настройкам в ini
Версия 3.1.1 Добавил выбор нескольких файлов, убрал зависимость от filer.dll, изменил форму, добавил кнопку очистки
Версия 3.2 Добавил "галочки" в меню настройки, и немного англифицировал (патом до конца сделаю)
Версия 3.3 28.04.2009 Исправил ошибку обработки файлов из разных источников, закончил перевод на английский
Версия 4.0 29.04.2009 Добавлена проверка идентификаторов на дублирование
Верися 5.1 15.05.2009 Язык настраивается в ini, добавил поиск драйверов во введенному идентификатору
Верися 5.2 20.04.2010 Добавлено Отключение вопроса о перезагрузке.

Вспомогательные инструменты
Tools.7z содержит:
Tools.dll
7z.exe
7z.dll
config.fpw
msvcr70.dll

Библиотеки
http://www.filehoster.ru/files/cf1997 - 1.96 Мб
http://ifolder.ru/10633108 - 1.96 Мб

Содержит:
vfp8r.dll
vfp8rrus.dll

Если у вас нет библиотек VFP8 или вспомогательных инструментов то нужно скачать их и скопировать в папку Exec
Структура: С версии 2.2 все в ini
WorkDrv\Exec - Имя не важно, содержит исполняемые файлы и библиотеки.
WorkDrv\DrvArh - Имя важно, папку надо наполнить дровами в 7z архивах, которые в последствии будут устанавливаться, в них же будут произведен поиск Id устройств
Крестик не активен для меньшей мароки для меня. Думаю это не доставит больших не удобств.

Подробное описание
При старте проверяется наличие в директории с WorkDrv.exe
Tools.dll
7z.exe
7z.dll
По кнопке "обновить...":
Если найдена база идентификаторов, то задает глупые :-) вопросы ;название базы и путь к ней храняться в ini файле, значение соответственно IdBaseName и PathIDBase
Перебирает все архивы 7z из списка и распаковывает инф файлы в VREMD|TmpInf
ИМЕНА ФАЙЛОВ В СПИСКЕ НЕ ДОЛЖНЫ ПОВТОРЯТЬСЯ
Рабта со списком организованна с помощью кнопок справа от списка.
Первоначальное заполнение происходит из файлов 7z из папки указанной в ini файле, значение FolDrvArh.

Создает Temp.dbf в папке указанной в ini, анализирует все инф находит идентификаторы драйверов и записывает в Temp.dbf,
все переписывается (делает некоторые преобразования ) в базу идентификаторов создает индекс .cdx.
Удаляет VREMD|Temp.dbf
Обновление завершено
По кнопке "Подбор...":
Если не найдена база идентификаторов, то предлагает воспользоваться кнопкой "Обновить..."
Открывет база идентификаторов .dbf
Из системы при помощи Api получаем полный идентификатор устройств находим соответствия в ID.dbf
и совокупную информацию пишет в DrvFoDev.dbf.
Распахивает выбор найденного где в поле "Choose" можно поменять значение, используя "INSERT", "CTRL+INSERT" - инвертирует выбор во всем списке.
В зависим от значения поля "Choose" драйвер будет выюран к установке (значение Т) или нет (значение F)
Размер окна и колонок можно изменять.
Завершить выбор можно нажав на крестик!
При активации основного окна программы, выбор считается завершенным!!!
С помощью 7z.exe распаковывает нужные папки из архивов в DrvInst,
Создается InstDrv.log - в него пишется всякое.
Сообщает "Определение оборудования завершено!...Приступить к установке?" в случай ответа "Нет" - ничего больше не делает, Если "Да", то
С Api обновляет найденные драйвера устройств
По кнопке "Закрыть":
Удаляет временные файлы, если стоит соответствующая галка, закрывает форму
По кнопке "Подбор...":
Если не найдена база идентификаторов, то предлагает воспользоваться кнопкой "Обновить..."
Открывет база идентификаторов .dbf
Ищет в базе все идентификаторы "похожие" на введенный
Распахивает выбор найденного где в поле "Choose" можно поменять значение, используя "INSERT", "CTRL+INSERT" - инвертирует выбор во всем списке.
В зависим от значения поля "Choose" драйвер будет выюран к установке (значение Т) или нет (значение F)
Размер окна и колонок можно изменять.
Завершить выбор можно нажав на крестик!
При активации основного окна программы, выбор считается завершенным!!!
С помощью 7z.exe распаковывает нужные папки из архивов в DrvInst, сообщает о том куда распаковал

Тестим, высказываемся.

Пакеты драйверов
http://driverpacks.net/
http://3rdpartydriverpacks.thesneaky.com/wnt5_x86-32/

Makaan
13-02-2009, 11:02
У меня выскачила ошибка при нажатии кнопочки "Обновить базу драйверов" в виде, "Определение класса FILTER.FILEUTIL не найдено". Если нажать пропустить то говорит "Обьект OMYFILER не найден."

Почему нельзя закрыть прогу крестиком?

А такой вопрос, установливаются все драйвера? Выборочно? Только не те устройства на которые драйвера в системе не стоят? По больше бы информации в шапку.

Юмор конечно порадовал "Жду приказаний....", но имхо это излишне.

mercuryn
13-02-2009, 14:18
распаковывает нужные драйвера и устанавливает их. »
А если нужно только выборочно??? Какой-нибудь один??? Или установить из набора однотипных какой-то конкретно, например, из перечня нвидевских самый старый и т.п....
PS
А побочным эффектом (а может и основным) Вашей программы может быть список пересекающихся идентификаторов наборов драйверов в удобном GUI-режиме с возможностью корректировки... На сегодня это наиболее злободневный вопрос.
Контроль корректности драйверов - тема огромная...

IvanVL
16-02-2009, 03:34
У меня выскачила ошибка »
Была ошибка, исправил 1 пост. Проверяем. Отпишись пожалуйста!

А побочным эффектом (а может и основным) Вашей программы может быть список пересекающихся идентификаторов наборов драйверов в удобном GUI-режиме с возможностью корректировки »
Что то я не совсем понял фразу. По подробней пожалуйста.

Думаю выборочную установку можно сделать. А что выводить для выбора? (исходя из информации в inf, названия архива, пути в архиве)

mercuryn
16-02-2009, 09:49
Что то я не совсем понял фразу. По подробней пожалуйста.
Думаю выборочную установку можно сделать. А что выводить для выбора? (исходя из информации в inf, названия архива, пути в архиве) »
Скорее всего номер версии и дату, включая HWID, т.е. полную идентификацию с местонахождением... Но это как раз и говорит о наличии дубликатов HWID в драйверах разных версий и дат. При обработке в ГУИ дубликатов обычно выбирается самый свежий, что не всегда хорошо (например NVIDIA).
Исходя из этого, иметь список пересекающихся HWID в драйверах позволяет правильно реконфигурировать их для исключения неправильного выбора...
Но инструментария для всего комплекса решения этих задач на сегодня нет.

MKN
16-02-2009, 11:39
Исходя из этого, иметь список пересекающихся HWID в драйверах позволяет правильно реконфигурировать их для исключения неправильного выбора...
Но инструментария для всего комплекса решения этих задач на сегодня нет. »
Интересно, а как реализован механизм определения оборудования в известной программе Everest ? Там ведь информация предоставляется вплоть до конкретной модели, к примеру видеокарт NVIDIA, что позволяет точно выбрать необходимый драйвер.

mike09
16-02-2009, 15:27
DVD-плеер подключен по 1394, компьютер: найдено новое оборудование, установить драйверы, их нет. Эта программа может помочь?

mercuryn
16-02-2009, 18:15
Интересно, а как реализован механизм определения оборудования в известной программе Everest ? Там ведь информация предоставляется вплоть до конкретной модели, к примеру видеокарт NVIDIA, что позволяет точно выбрать необходимый драйвер. »
Точно так-же, как и в программе SaveHWIDs.exe, в свойствах оборудования XP и т.д.
Но вопрос не в этом. Разные релизы драйверов имеют аналогичные коды оборудования, если из новых релизов убрать коды старого оборудования, а из старых релизов коды нового, то будет всё без синих экранов и проблем. Сейчас выбирается новый релиз для всего оборудования, например, с новыми драйверами не работают NVIDIA GF 2, хотя старые работающие драйвера и присутствуют, но не выбираются...
PS
Имеются в виду ven_....&dev...., в полном объёме...

IvanVL
17-02-2009, 02:45
Попробую сделать но позже, все пожелаия писать не стесняться!
Скорее всего номер версии и дату »
Я так понимаю это секция инф файла [version] и значение DriverVer. В итоге видим что то вроде 11/20/2007,5.681.1120.2007, затем что то вроде PCI\VEN_10DE&DEV_0322&SUBSYS_00000000&REV_A1, Имя архива и путь в архиве и имя инф файла(возможно изменю последовательность), и делаем возможность выбора тех или иных дравов. Если не правильно поправьте меня.

MKN
17-02-2009, 09:06
Точно так-же, как и в программе SaveHWIDs.exe, в свойствах оборудования XP и т.д. »
Касаемо HWID - это понятно, но, ведь определяется конкретная модель, что и определяет выбор драйвера.
Опять же, на примере видеокарт NVIDIA - ведь определена будет конкретно и NVIDIA GF 2 и скажем, FX6200 - и драйвер я выберу соответствующий для старой модели и для более новой, а HWID_ы в драйверах у них обеих ведь "пересекающиеся". Только вот сделаю я это вручную, а надо бы автоматом, так как утилите всё равно, какой пакет дров предложить (как впрочем и ранее предложенным, типа Интерфейс для Пакетов Драйверов)

mercuryn
17-02-2009, 09:36
а надо бы автоматом »
Предложите универсальный алгоритм...

IvanVL, мне кажется что сначала по коду, с разной степенью детализации, а потом внутри по датам и версиям, с информацией откуда...

MKN
17-02-2009, 10:27
Предложите универсальный алгоритм... »

IvanVL уже над этим работает. :) А именно - над учётом значения DriverVer перед предложением выбрать драйвер. Если сопоставлять даты выхода новых моделей (для начала, хотя бы для видеокарт) с датами DriverVer и на этом основании выбирать драйвер, то "процент попадания" увеличиться. Может это и не лучший вариант, но вариант...

IvanVL
17-02-2009, 10:45
В принципе пачти все готово, только с интерфейсом поработать надо. Думаю завтра после завтра потестим новенькую прогу. Высказываемся по поводу будущего вида выбора.

mercuryn
17-02-2009, 11:26
IvanVL, Высказываемся по поводу будущего вида выбора »
Пока этого достаточно, в процессе будет видно что и как...
Но есть один вопрос, табличка показывает проблемы относительно конкретной мамы с комплектующими, а возможен вариант, несколько сложнее, анализа всех драйверов (по видам) на пересечение (без конкретных компов)...
Такой вариант позволял бы анализировать Башратовские драйвера на вшивость и корректировать их на уникальность. Все равно цифровая подпись в ГУИ уже не актуальна...
PS
Вместо http://www.filehoster.ru/files/cf1995 - 140 к качается какая-то ерунда размером 102 к...
PS
Вечером удалось скачать...

IvanVL
18-02-2009, 06:03
Добавил выбор. изменил первый пост.

Но есть один вопрос, табличка показывает проблемы относительно конкретной мамы с комплектующими, а возможен вариант, несколько сложнее, анализа всех драйверов (по видам) на пересечение (без конкретных компов)...
Такой вариант позволял бы анализировать Башратовские драйвера на вшивость и корректировать их на уникальность »

Сам алгоритм какой? Искать ven_....&dev...., и если одни и те же попадаутся в разных инф то выводит в табличку?

mercuryn
18-02-2009, 09:38
IvanVL, Сам алгоритм какой? Искать ven_....&dev...., и если одни и те же попадаутся в разных инф то выводит в табличку? »
В принципе да, и как вариант, сразу по всем DP...7z. От ошибок не застрахован никто. Было бы неплохо в настройках указывать папку с архивами драйверов, а в них анализируемые архивы...
Вопрос совпадения достаточно неоднозначен:
Hardware ID's:
PCI\VEN_8086&DEV_266F&SUBSYS_80A61043&REV_05
PCI\VEN_8086&DEV_266F&SUBSYS_80A61043
PCI\VEN_8086&DEV_266F&CC_01018A
PCI\VEN_8086&DEV_266F&CC_0101
Compatible ID's:
PCI\VEN_8086&DEV_266F&REV_05
PCI\VEN_8086&DEV_266F
PCI\VEN_8086&CC_01018A
PCI\VEN_8086&CC_0101
PCI\VEN_8086
PCI\CC_01018A
PCI\CC_0101
Но для начала хотя-бы до DEV_...
По своей сути, такая утилита могла бы применяться до утилиты Mr dUSHA по формированию ini, если в функциях Вашей утилиты был бы механизм корректировки дубликатов строк inf по заранее заданной таблице. Такой режим работы позволил бы при обновлении пакетов драйверов резко сократить объем ручной работы по сопровождению Башратовских (и не только) пакетов драйверов...
Но это возможная перспектива.
PS
Нельзя-ли выкладывать на зеркало http://ifolder.ru/???

bogomolv
18-02-2009, 21:24
IvanVL

Посмотрел новую версию. Очень неплохо.
В первую очередь интересовала реализация пожеланий mercuryn, которые я полностью поддерживаю.
Скажу больше - лично мне установка драйверов в данной, равно как и в других подобных программах, вообще не нужна.
Мне нужно, чтобы программа выбрала из DP...7z драйвера, возможные к установке на конкретной машине. А уж потом я сам и опробую эти драйвера, и сравню их с имеющимися, и пропишу в автоустановку...
Замечания и пожелания.
Первой стадии как-то больше соответствует определение "Собрать информацию по драйверам, имеющимся в пакетах DP...7z". Название "Обновить базу драйверов" ассоциируется немного с другим :). Кроме того, при пустой папке DrvArh не должно выдаваться сообщение, что все "Ok". :)
Название второй кнопки пугает своей "бесповоротностью". М.б. разделить процессы и установку повесить на отдельную кнопку, а второй стадией сделать "Подбор драйверов для данного компьютера"?
Очень корявый вид у окошка предлагаемых к установке драйверов. Кроме содержания окна, не нравится все - название, размер, положение, отсутствие подсказок, неочевидные возможности выбора... Кроме того, "Esc" - это escape и не должно вызывать предложение установить драйвера. Аналогичное замечание по следующему шагу - при отказе от установки не должно выскакивать окошко "Установка драйверов завершена! Проверьте..." :)
По-моему, также неплохо было бы дать возможность выбора, что делать: Установить или Сохранить подобранные драйвера. Я понимаю, что снятие галочки на "Удалить временные файлы..." обеспечивает то же самое. Но хотелось бы, чтобы это было более очевидным...

mercuryn
19-02-2009, 10:16
IvanVL, мне кажется, такая идея установки драйверов вполне найдёт потребителей. Выводимая табличка выбранных драйверов понятна. На данном этапе работы интерфейс с пользователем не слишком важен, но уж больно прямолинеен...
К сожалению, пока не видно режима анализа отдельного или группы пакетов драйверов без привязки к конкретной машине.

IvanVL
20-02-2009, 05:35
Если есть необходимость дороботки AnalysisDRV, то все пожелания в примерах, без сленга, вобщем как можно понятней. Все предложения прочитаю не раньше 24.

dim-soft
22-02-2009, 22:25
есть ли возможность использовать "заранее расчитанную базу драйверов" ? (попробовал есть :) правда не тривиально, но догадался)
очень хочеться использовать данную программу в следующем сценарии:

0) параметры храним во внешнем ini файле :)
1) запускаем на мощном ПК программу - получаем файл ID.dbf
2) отмечаем нужные драйвера
3) они распаковываются в папку drvinst (её путь в ini файле)
4) используя peimg интегрируем драйвера

в идеале программа в текстовом режиме

а еще мысль после того как нужный inf выбран чтобы программа извлекла из 7z архива только те файлы которые упоминаются в данном inf файле, а не всю подпапку где он лежит




© OSzone.net 2001-2012