PDA

Показать полную графическую версию : Помощник установки драйверов (DIA - Drivers Installer Assistant) v.6.4.28 PreFinal


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

serg_ssa
01-07-2009, 12:02
romeo91, А зачем в новой версии программа сканирует windows\inf? То что в windows\inf есть файл драйвера еще не значит что он установлен, да и инфов разных версий oem*.inf может быть несколько для 1 устройства. Какой из них в данный момент стоит?
Инфу об установленном драйвере на ПС (версия, дата, имя файла) нужно читать из реестра. Это и правильнее и быстрее на порядок (тем более с учетом тормозов скана инфов из-за антивирусов).

romeo91
01-07-2009, 13:13
serg_ssa, не зная технологии зря делаете выводы. Работате все правильно, а не тупо сканирует папку с файлами inf/

Я анализирую данные полученные DEVCON
devcon.exe driverfiles acpi*
devcon.exe driverfiles hdaudio*
devcon.exe driverfiles pci*
devcon.exe driverfiles usb*
devcon.exe driverfiles hid*
devcon.exe driverfiles bluetooth*
devcon.exe driverfiles monitor*
devcon.exe driverfiles root*

На выходе получаю например:
PCI\VEN_8086&DEV_2810&SUBSYS_00000000&REV_02\3&11583659&0&F8
Name: Intel(R) ICH8/ICH8R Family LPC Interface Controller - 2810
Driver installed from c:\windows\inf\oem56.inf [ISAPNP_DRV]. 1 file(s) used by driver:
C:\WINDOWS\system32\DRIVERS\isapnp.sys

Из этого выдергиваю путь до inf файла и из него версию.

Дак вот самый долгий процесс это работа именно DEVCON. Остальное примерно 5%
Можно время ускорить используя drivernodes вместо driverfiles, но эти данные сложнее обрабатывать.

PCI\VEN_10EC&DEV_8168&SUBSYS_81AA1043&REV_01\4&24CAFEBD&0&00E5
Name: Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC
DriverNode #0:
Inf file is c:\windows\inf\oem5.inf
Inf section is RTL8168x.ndi
Driver description is Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC
Manufacturer name is Realtek Semiconductor Corp.
Provider name is Realtek Semiconductor Corp.
Driver date is 14.08.2006
Driver version is 5.658.814.2006
Driver node rank is 8193
Driver node flags are 0000B244
Inf is digitally signed
DriverNode #1:
Inf file is c:\windows\inf\oem5.inf
Inf section is RTL8168x.ndi
Driver description is Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC
Manufacturer name is Realtek Semiconductor Corp.
Provider name is Realtek Semiconductor Corp.
Driver date is 14.08.2006
Driver version is 5.658.814.2006
Driver node rank is 1
Driver node flags are 0000B240
Inf is digitally signed
DriverNode #2:
Inf file is c:\windows\inf\oem76.inf
Inf section is RTL8168x.ndi
Driver description is Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC
Manufacturer name is Realtek Semiconductor Corp.
Provider name is Realtek Semiconductor Corp.
Driver date is 30.10.2008
Driver version is 5.708.1030.2008
Driver node rank is 8192
Driver node flags are 0000B244
Inf is digitally signed


К тому же я также получаю список файлов драйвера который в последствии буду обрабатывать для Бэкапа.

Комсомолец
01-07-2009, 13:53
И вернёмся, таким образом, к красивому прежнему фэйсу, что я и предлагал? »
абсолютно верно. Фейс был красивее.))
Lisabon пишет: "romeo91, дизайн изменил - молодец!" Lisabon, понятно, - фигура, но чем его не устраивал прежний вид программы - тоже неясно... »
пацталом.
romeo91, прогу в размерах не надо делать больше. сейчас самый оптимальный размер. а вот старые кнопки были аккуратнее и больше подходили к дизайну программы.

serg_ssa
01-07-2009, 14:45
romeo91, Ну неправильный подход инфы сканить. Вообще в грамотно написанной программе обычно юзают SetupDiххх функции вместо devcon и никаких текстовых файлов не парсят. Код неочень большой, но я везде видел только на с++.
В vb6 можно гораздо проще - такой vbs-скрипт прикрутить, но это опятьже менее правильно.


On Error Resume Next

strComputer = "."
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile("c:\777.txt", True)
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_PnPSignedDriver")

For Each objItem in colItems
if Not IsNull(objItem.HardWareID) then
objTextFile.WriteLine ""
' objTextFile.WriteLine "Class GUID: " & objItem.ClassGuid
objTextFile.WriteLine "Description: " & objItem.Description
' objTextFile.WriteLine "Device ID: " & objItem.DeviceID
objTextFile.WriteLine "Hardware ID: " & objItem.HardWareID
' objTextFile.WriteLine "Manufacturer: " & objItem.Manufacturer
' objTextFile.WriteLine "Name: " & objItem.Name
objTextFile.WriteLine "PNP Device ID: " & objItem.PNPDeviceID
' objTextFile.WriteLine "Service: " & objItem.Service

' objTextFile.WriteLine "Driver Provider Name: " & objItem.DriverProviderName
dtmWMIDate = objItem.DriverDate
strReturn = WMIDateStringToDate(dtmWMIDate)

objTextFile.WriteLine "Driver Date: " & strReturn

objTextFile.WriteLine "Driver Version: " & objItem.DriverVersion
objTextFile.WriteLine "INF Name: " & objItem.InfName
end if

Next
objTextFile.Close

Function WMIDateStringToDate(dtmWMIDate)
If Not IsNull(dtmWMIDate) Then
WMIDateStringToDate = CDate(Mid(dtmWMIDate, 5, 2) & "/" & _
Mid(dtmWMIDate, 7, 2) & "/" & Left(dtmWMIDate, 4) _
& " " & Mid (dtmWMIDate, 9, 2) & ":" & _
Mid(dtmWMIDate, 11, 2) & ":" & Mid(dtmWMIDate,13, 2))
End If
End Function
Вместо вывода в файл напрямую брать инфу в прогу, сравнивая HardWareID

romeo91
01-07-2009, 15:28
Что вы так к дизайну пристали! Хорошо подумаю может и верну.
Вы функционал проверьте, мне это важно. Что от того как кнопки лежать программа будет хуже работать?
Такое ощущение что я прогу первый раз выложил без функционала и спрашиваю у всех как вам дизайн.
Чтовы как дети малые уже третий день полемику разводите.
Ну было у меня просвящение, менял статусы, менял картинки и захотелось мне кое-что изменить вот и наваял.
Я давно хотел на эти кнопки картинки добавить, и даже с начала перед самой первой версией, но не получалось никак до этого добраться. Интересно мне если бы я сразу выложил версию с картинками, а потом бы их убрал однажды, вы бы тоже спрашивали почему, ведь было так здорово.

Есть еще кто-то кому не нравится измененый дизайн?
Вот смотрите вот такую картинку! Пока не хочется мне возвращать все до версии 1.7.0

Вообще в грамотно написанной программе обычно юзают ...»
Ну неправильный подход инфы сканить.»
Опять 25. Вы что ли все здесь программисты? Я любитель и пишу как умею и как знаю.
Вся программа в основном написана на парсинге файлов inf и txt. И поверьте мне время на этих операциях тратится минимально. Вся работа с inf файлами идет как с ini. А работа с ini идет всегда через реестр. Просто соответствующий файл ini мапится в реестр. (Почитайте в интернете).
ТАК ЧТО ЕЩЕ РАЗ ГОВОРЮ ТОРМОЗА ПРОГРАММЫ ПРИ СТАРТЕ НЕ ИЗ_ЗА ТОГО ЧТО ЧИТАЮТСЯ INF ФАЙЛЫ (ДЛЯ ПРИМЕРА ПОСТРОЕНИЕ БАЗЫ ДРАЙВЕРОВ ДЛЯ ПАКЕТА LAN ТАМ INF-файлов на 9 МЕТРОВ И ДОЛГО ОНИ ОБРАБАТЫВАЮТСЯ? - всего одну две минуты)

Для чего мне пока писать свой код и писать сложные "глючные" функции для сбора инфы о драйверах как для 32 так и для 64 битных систем (подход тут разный), когда есть собственная разработка мелкософта - Devcon, которая все это умеет.

P.S. За код конечно спасибо, гляну может что интересного найду для себя.
P.P.S Использовать программу никто не заставляет, не нравится не пользуйтесь.

truvo
01-07-2009, 15:44
Lisabon, насчет подписей с romeo91 мы уже обсудили - мой вариант я обещал. Насчет остального - прекратите, в конце концов предлагать мне заниматься бесполезным делом и менять хорошее на другое! На каком бы языке вам ещё это повторить?

romeo91, последняя картинка лучше, чем предпоследняя... это всё, что скажу.

serg_ssa
01-07-2009, 17:13
romeo91, Извини если обидел. Все мы тут любители. ))) да, про совместимость я не подумал. Но хочу напомнить, что в отличии от DRP твой проект не hta-скрипт с его ограничениями, а самостоятельное winpe приложение.
Просто хочу помочь чем могу, вот идейки всякие и предлагаю, для развития проекта. А направить на нужную мысль иной раз тоже большая помощь. По себе знаю.

ПРОСТО ФАКТЫ
АМД 3200+ 2гига оперативы. стоит нод32.
Время загрузки 9 минут 43 сек.
Отключаю антивирус - 31сек
Папку inf переименовал в inf1 - загрузка за 5 секунд.

Дальше думаем сами.

---------------------------------
romeo91, Кстати еще способ определения инфы о дровах:
Делаем прогон ветки HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\<any1>\<any2>\<any3>
Тут как раз все обнаруженные устройства в системе
Смотрим 2 параметра: <HardwareID> и <Driver>
зная <Driver> читаем инфу о дровах из секции HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<Driver>
Скорость на высоте и никаких доп функций кроме чтения из реестра не используем.

Lisabon
01-07-2009, 20:04
romeo91,

Как тебе такой мой вариант дизайна программы

http://s57.radikal.ru/i157/0907/b9/8a54081ce7d9t.jpg (http://radikal.ru/F/s57.radikal.ru/i157/0907/b9/8a54081ce7d9.png.html)

там я расписал, что я хотел увидеть в программе

truvo, не злись, тебе это не клицу, просто хочу чтоб все были при деле :)

romeo91
01-07-2009, 20:09
Тут как раз все обнаруженные устройства в системе »
Тут вообще все драйвера котоыре есть в системе и не совсем понятно какие сейчас установлены и активны

Странно, но влияния антивируса у себя не заметил стоит KAV 2009. Хотелось бы от тебя serg_ssa увидеть дебаг лог загрузки программы, для анализа слабого места. А обновление БД (пакета LAN) у тебя сколько идет?

Как тебе такой мой вариант дизайна программы »
Сложновато сказать, довольно странное расположение кнопок, но принял во внимание подумаю на досуге.
Посмотрим что еще truvo предложит.

Lisabon
01-07-2009, 20:11
Странно, но влияния антивируса у себя не заметил стоит KAV »

У меня стоит Kaspersky Internet Security 2009, время запуска не изменилось

serg_ssa
01-07-2009, 20:45
Как тебе такой мой вариант дизайна программы »
А вот мне нравится такой как сейчас
дебаг лог загрузки программы »
завтра. сегодня уже никак

Lisabon
01-07-2009, 20:51
romeo91,

довольно странное расположение кнопок »

Немного поясню почему так

- первый столбец кнопок, чисто по установке драйверов
- второй столбец кнопок, чисто по работе с базой данных

по-моему так немного логичней, один столбец для одной функции, второй для другой

все кнопки можно немного сделать длиннее, и переместить слева на право, логотип сдвинут наверное в самый край, это я так по-быстрому накидал, за несколько минут..., главное дать тебе идеи, а там сам решай...

truvo
02-07-2009, 01:20
romeo91, вот обещанные мною комментарии к кнопкам в панели "Обозначения кнопок". Они длинные, то есть рассчитаны именно на всплывающий вариант, вы ведь позволили мне не ограничивать объем... Я хотел выразить суть поточнее, и мне показалось, что нелишне будет добавить, какие действия пользователю стоит произвести, когда он увидит такую кнопку. Шесть комментариев я привожу в соответствии с шестью кнопками в вашей последней версии установщика, слева-направо. Как для второй кнопки написать про особый случай с "установленно-неустановленным" драйвером на чипсет и как вообще формулировать про активные или неактивные устройства - я не знаю, ибо для меня этот случай по-прежнему остаётся непонятным, и я вообще мало смыслю в драйверной тематике и больше спец по журналистике и русскому языку. Так же ничего не стал я писать про возможности пакетной установки - чтобы совсем не запудрить мозги людям, пусть они лучше в справке об этом прочтут. Тем более, что комментирую каждую кнопку в отдельности, и пакетная установка тут ни при чём...

Короче, ловите формулировки и смотрите, как они на ваш вкус...

Предлагаю так: оставить пока прежний (версии 1.7) дизайн, а в панели для обозначений кнопок написать: "Обозначения кнопок (подведите курсор к нужному значку)", затем поместить новые шесть иконок, или такие как есть, или другие, какие заблагорассудится общественности, а во всплывающих подсказках разместить, например, такие слова:
1)

В этом пакете драйверов программы есть драйвера, подходящие к устройству, обнаруженному на вашем компьютере.

Такие же драйвера (тех же версий) уже установлены на вашем компьютере.

Ваши действия:
Никаких действий не требуется.

2)

В этом пакете драйверов программы есть драйвера, подходящие к устройству, обнаруженному на вашем компьютере.

На вашем компьютере эти драйвера не установлены.

Ваши действия:
Переключите программу в один из режимов установки драйверов и нажмите на эту кнопку - это приведет к установке необходимых драйверов из пакета и соответствующему изменению вида кнопки.

3)

В этом пакете драйверов программы есть драйвера, подходящие к устройству, обнаруженному на вашем компьютере, но более новые, чем те, что уже установлены.

Ваши действия:
Переключите программу в один из режимов установки драйверов и нажмите на эту кнопку - это приведет к установке более новых драйверов из пакета и соответствующему изменению вида кнопки.

4)

В этом пакете драйверов программы есть драйвера, подходящие к устройству, обнаруженному на вашем компьютере, но более старые, чем те, что уже установлены.

Ваши действия:
Ничего делать не надо. Можете поискать в сети более свежие драйвера и обновить (заменить) данный пакет в программе.

5)

Драйвера из этого пакета программы не имеют отношения к вашему компьютеру.

Ваши действия:
Ничего делать не надо. Этот пакет драйверов пригодится вам как-нибудь в другой раз - при замене устройств или на другом компьютере.

6)

Программа не может определить, что находится в этом пакете драйверов.

Ваши действия:
Переключите программу в режим "Создание или обновление базы данных драйверов", нажмите на эту кнопку - таким образом сведения о драйверах из пакета будут добавлены в базу данных программы и вид кнопки изменится. О дальнейших действиях читайте в пояснении к соответствующему значку.
Пробелы между строчками, если хотите, можно убрать, пустить текст сплошняком, получится немного короче, просто мне показалось, что так выразительнее выглядит. Действия пользователя я выделил шрифтом из тех же соображений.

Заодно предложение ещё одно: в названии режима "Создание или обновление базы данных драйверов", может, убрать слово "данных" и оставить "базы драйверов"?

Lisabon
02-07-2009, 01:32
truvo,

а во всплывающих подсказках разместить, например, такие слова:
читать дальше » »

Я так полагаю, что предложенные тобой пояснения, надо добавить ещё и в справку программы...

truvo
02-07-2009, 01:49
Ну, это при желании автора. В любом случае справка уже устарела, с появлением новых кнопок и всего прочего, так что как-то обновлять её придется...

Комсомолец
02-07-2009, 03:22
Lisabon, дизайн сложноват.

Lisabon
02-07-2009, 09:04
romeo91,

Как тебе такой ещё один вариант дизайна программы, тоже за несколько минут состряпал с утра... :)

http://i004.radikal.ru/0907/57/6d54b6569791t.jpg (http://radikal.ru/F/i004.radikal.ru/0907/57/6d54b6569791.png.html)

serg_ssa
02-07-2009, 09:28
romeo91, как обещал. Загрузка 10 минут. Загрузка проца 98-100% службой нод32 (ekrn.exe). Кстати всегда гдето посредине загрузки вылетает ошибка 13 <type mismatch>, жму "продолжить". Кнопки появляются, но прога еще минут 5 "думает", потом все ок.

Lisabon, Какой смысл постоянно дежать видимой кнопку "прервать обновления"? Имхо как сейчас очень даже грамотно сделано.

romeo91
02-07-2009, 10:00
гдето посредине загрузки вылетает ошибка 13 <type mismatch> »
Двумя страницами ранее я выкладыват исправленную версию.
По остальному проанализирую

truvo
02-07-2009, 12:15
это я так по-быстрому накидал, за несколько минут »ещё один вариант дизайна программы, тоже за несколько минут состряпал с утра »Lisabon, а может, вместо нескольких минут подумать подольше, хотя бы пару недель? Авось, ещё лучше получится. Куда спешить и главное - зачем?

Что касается вашей последней картинки: чтобы логотип в центре - такое никогда не видел, там ему точно не место.




© OSzone.net 2001-2012