PDA

Показать полную графическую версию : [решено] DriverX (программа установки драйверов) + исходники


Страниц : 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

SamLab
20-10-2012, 15:01
На счет тачпадов при выборе драйверов можно ввести маркеры папок по вендорам, чтобы оболочка определяла модель ноутбука и ставила драйверы только из соответствующей папки т.к. допустим *PNP0F13 есть у всех вендоров буков

Или из инфов брать данные - например у Футжи

%PS2.SynDeviceDesc% = Fujitsu_GROUP1_PS2_Inst,*SYN1F01
%PS2.SynDeviceDesc% = Fujitsu_GROUP8_Intertouch_Inst,*SYN1F08

или у Тошибы

%PS2.SynDeviceDesc% = Toshiba_GROUP3_PS2_Inst,*SYN1107
%PS2.SynCompatibleDeviceDesc% = Toshiba_GROUP5_PS2_Inst,*SYN0700

BadPointer
20-10-2012, 15:19
Информация всегда будет неполной. NTx86.6.0 подходит для висты и для 7 и для 8. Но, с 7 и 8 может не работать корректно. Я думаю что все-таки при разборе пологаться как на маркеры, так и на содержимое inf по выбору пользователя.
А потом иметь возможность вручную поправить косяки. »
У семерки версия 6.1, у восьмерки версия 6.2. Это также указывает на то что эти системы более совместимы между собой чем XP.

DPS пробует найти сначала драйвер с полным соответствием версии(например 6.2), а в случае его отсутствия ищет среди 6.1 и 6.0. Подобная ситуация не является косяком авторов драйверов. Они могли сделать драйвер для висты с учетом совместимости вплоть до восьмерки, и рассчитывать на совместимость всей серии 6.x.

BadPointer, единственная проблема читать логи количество строк надо сокращаться много избыточной информации или как минимум для параметра problem : надо вести другой лог
Я думаю просто сделать лог в формате HTML с ссылками из заголовка на каждый этап установки и возможномстью сворачивать не нужные участки. А ощибки легко выделять красным. например.
Лог у DPS не случайно сделан в текстовом формате и содержит много информации. Это позволяет легко сравнивать логи между собой после внесения изменения в программу или после установки драйверов. Не думаю что там есть какая либо лишняя информация: в процессе тестирования я добавляю туда много дополнительной отладочной информации, но окончании тестирования все это убирается. При чтении лога нужно только знать какие слова нужно искать(Ctrl+F) чтобы найти нужное место.

Кстати, наличия логов у DriverX очень не хватает.
На счет тачпадов при выборе драйверов можно ввести маркеры папок по вендорам, чтобы оболочка определяла модель ноутбука и ставила драйверы только из соответствующей папки т.к. допустим *PNP0F13 есть у всех вендоров буков
Для подобного решения требуется иметь уметь определять модель ноутбука и извлекать название производителя из inf файла. ArtX по видимому ближе всего к решению этой задачи, так как он реализовал фичу определения модели ноутбука и загрузки драйвера из интернета.

SamLab
20-10-2012, 15:26
Для подобного решения требуется иметь уметь определять модель ноутбука и извлекать название производителя из inf файла. ArtX по видимому ближе всего к решению этой задачи »Только что общался с ArtX - он сказал чтобы ты ему написал в аську или скайп сейчас и он скажет как определять вендора бука

Boa Soft
20-10-2012, 15:29
Пока вот накумекал следующее :

const
// XP-S_2003
VER_5x86W = $00000001;
VER_5x64W = $00000002;
VER_5x86S = $00000004;
VER_5x64S = $00000008;
VER_5x86 = VER_5x86W or VER_5x86S;
VER_5x64 = VER_5x64W or VER_5x64S;
VER_5xALL = VER_5x86 or VER_5x64;
VER_ALLXP = VER_5xALL;
// Vista-S_2008
VER_60x86W = $00000010;
VER_60x64W = $00000020;
VER_60x86S = $00000040;
VER_60x64S = $00000080;
VER_60x86 = VER_60x86W or VER_60x86S;
VER_60x64 = VER_60x64W or VER_60x64S;
VER_60xALL = VER_60x86 or VER_60x64;
VER_ALL6 = VER_60xALL;
// 7-S_2008r2
VER_61x86W = $00000100;
VER_61x64W = $00000200;
VER_61x86S = $00000400;
VER_61x64S = $00000800;
VER_61x86 = VER_61x86W or VER_61x86S;
VER_61x64 = VER_61x64W or VER_61x64S;
VER_61xALL = VER_61x86 or VER_61x64;
VER_ALL7 = VER_61xALL;
// 8-S_2012
VER_62x86W = $00001000;
VER_62x64W = $00002000;
VER_62x86S = $00004000;
VER_62x64S = $00008000;
VER_62x86 = VER_62x86W or VER_62x86S;
VER_62x64 = VER_62x64W or VER_62x64S;
VER_62xALL = VER_62x86 or VER_62x64;
VER_ALL8 = VER_62xALL;
// All
VER_ALL86 = VER_5x86 or VER_60x86 or VER_61x86 or VER_62x86;
VER_ALL64 = VER_5x64 or VER_60x64 or VER_61x64 or VER_62x64;
// All workst
VER_ALL86W = VER_5x86W or VER_60x86W or VER_61x86W or VER_62x86W;
VER_ALL64W = VER_5x64W or VER_60x64W or VER_61x64W or VER_62x64W;
// All srv
VER_ALL86S = VER_5x86S or VER_60x86S or VER_61x86S or VER_62x86S;
VER_ALL64S = VER_5x64S or VER_60x64S or VER_61x64S or VER_62x64S;


Вроди бы перекрывает весь диапазон от хп до 8. 2000 и ранее нет смысла учитывать.
Пока вот думаю, в индексах писать числом или "6x64,7x64,8x64".
Первое легче обрабатывать, второе - нагляднее контролировать и редактировать.

Для подобного решения требуется иметь уметь определять модель ноутбука и извлекать название производителя из inf файла. ArtX по видимому ближе всего к решению этой задачи, так как он реализовал фичу определения модели ноутбука и загрузки драйвера из интернета. »

Это тоже зло и не поможет. У одной и той же модели на официальном сайте выложено обычно 2-3 модели точпада, 2-3 модели сети и даж до десятка моделей вэбок. Если с WI-FI и вэбками нет проблем (HWID уникален), то с точпадами так не пойдет. Обычно скачиваеш все и перебираеш пока не заработает.

SamLab
20-10-2012, 15:41
У одной и той же модели на официальном сайте выложено обычно 2-3 модели точпада »Вероятность что заработает все равно несравнимо выше, чем от чужого - например у Футжи от всех трех версий драйвера у меня тачпад работает, а с Тошибами и еще больше - там около 5 вроде пробовал - все подходили - кстати для Win Vista/7/8 они почти все более менее уникальные, это для XP для каждой модели у одного вендора разные были тачпады

Boa Soft
20-10-2012, 15:41
Boa Soft,
UpdateDriverForPlugAndPlayDevices не будет работать если сам EXE 32-битный а система 64-битная.
Вам придется компилить 64 разраядный EXE файл (Так пишет майкросот)... Я и сам пробывал ...
с DifxApi такая же беда тоже нужен 64 разрядные EXE файл. »

Это я прекрасно знаю и это решаемо. Консольная утилита - просто две версии. Если будет гуи - то 32разрядный, с дополнительным стабом 64x, в который вынесены все разрядо-зависимые вещи.


Ой и намучаетесь же.
Нехочется чтобы вы тратили на такое свои силы, не стоит это того... »

Утилитке все равно, что парсить - \6x64\ или же \64\Vista - критерий отбора задается через ини-файл или интерфейс.
А разбор самого инфа все равно нужен как последняя инстанция. Пример - AMD - драйвера видюх универсальные, но инфы для висты и 7 разные.

SamLab
20-10-2012, 15:43
Пока вот накумекал следующее »Не увидел маркера NTx86 например или как угодно назвать, который включает драйвера для версий винды 6.x x86 и NTx64 для 6.x x64

Boa Soft
20-10-2012, 15:59
Не увидел маркера NTx86 например или как угодно назвать, который включает драйвера для версий винды 6.x x86 и NTx64 для 6.x x64 »

Добавил.

// All LH 86
VER_LHx86S = VER_60x86S or VER_61x86S or VER_62x86S;
VER_LHx86W = VER_60x86W or VER_61x86W or VER_62x86W;
VER_LHx86 = VER_60x86 or VER_61x86 or VER_62x86;
// All LH 64
VER_LHx64S = VER_60x64S or VER_61x64S or VER_62x64S;
VER_LHx64W = VER_60x64W or VER_61x64W or VER_62x64W;
VER_LHx64 = VER_60x64 or VER_61x64 or VER_62x64;;

BadPointer
20-10-2012, 16:34
Только что общался с ArtX - он сказал чтобы ты ему написал в аську или скайп сейчас и он скажет как определять вендора бука
Как программно определить модель я и так вижу, поскольку могу посмотреть исходный код. Если это намек на то чтобы я реализовал эту фичу, то у меня нет времени.
Я сейчас работаю и учусь на вечернем(сейчас идет последний год), возвращаюсь домой около 23:00, а в выходные занимаюсь лабораторными по учебе. Поэтому я не могу ничего обещать до того как получу диплом.

Когда я активно работал на DPS, у меня еще не было учебы и смог вносить улучшения в определение драйверов у процесса установки драйверов и со временем DIA и DriverX внедрили в себя эти наработки. У меня все еще есть идеи как улучшить подбор драйверов, но я этого не сделал поскольку: я планировал переписать DPS на C/С++, что позволило бы избавиться от тормознутости, глючности(зависимость от IE) и ограниченности JavaScript, а также решить другие хронические проблемы DPS, которые упростили бы реализацию новых идей.

DriverX не имеет этих проблем, так как написан на полноценном языке программирования. Хотелось бы конечно видеть улучшения в области подбора и установки драйверов, но я не помню чтобы DriverX и DIA внедряли какую-либо наработку, которая не была бы сначала опробована в DPS. Это говорит об отсутствии инициативы у DriverX и DIA, хотя все еще есть что улучшать.

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

Мне бы хотелось знать какую проблему это предложение призвано решить. Размер индексов? Скорость подбора? Что-то другое? Возможно, есть более оптимальное решение для этой проблемы.

SamLab
20-10-2012, 16:52
BadPointer, Я знаю о твоей ситуации и сказал о ней ArtX - он сейчас вообще сказал полностью новый парсер пишет, но ничего конкретного не говорит что же там такого

Boa Soft
20-10-2012, 17:22
Мне бы хотелось знать какую проблему это предложение призвано решить. Размер индексов? Скорость подбора? Что-то другое? Возможно, есть более оптимальное решение для этой проблемы. »

То, что при парсинге учитывается и маркерные папки и содержимое инфа.
Название производителя и так у меня остается. Можно просто туда же тупо добавить имена секций для контроля.

BadPointer
20-10-2012, 17:30
Boa Soft, при индексации маркеры никак не учитываются и это не изменило структуру индексов. Полный путь к inf'у внутри драйверпака уже и так есть, а поддержка маркеров была реализована посредством анализа этого пути на наличие в нем маркера на этапе подбора драйвера.

Boa Soft
20-10-2012, 17:40
Boa Soft, при индексации маркеры никак не учитываются и это не изменило структуру индексов. Полный путь к inf'у внутри драйверпака уже и так есть, а поддержка маркеров была реализована посредством анализа этого пути на наличие в нем маркера на этапе подбора драйвера. »

Как я уже написал, хочу сделать программу всеядной. Не привязаной к формату определенного драйверпака.
Просто сравнивается 2 параметра HWID и для каких осей драйвер. При совпадении обоих параметров дравер выбирается. Установщик уже работает с отфильтрованной информацией индексов. В этом для меня суть.
Потом отобранное ранжируется сначала по степени совпадения HWID, а затем по дате. Установка начинается с самого лучшего.Если он не стал - то следующего за ним по рангу.

Boa Soft
24-10-2012, 17:03
Цитата SOLON7:
Ой и намучаетесь же.
Нехочется чтобы вы тратили на такое свои силы, не стоит это того... »
Утилитке все равно, что парсить - \6x64\ или же \64\Vista - критерий отбора задается через ини-файл или интерфейс.
А разбор самого инфа все равно нужен как последняя инстанция. Пример - AMD - драйвера видюх универсальные, но инфы для висты и 7 разные. »

В принципе, уже реализовал в текущей версии своей программы. Не стал переходить на идентификаторы из-за того, что нужно учесть очень много тонкостей.
Просто добавил новое поле фильтра по версии ос. Парсер индексатора заполняет поле автоматом. На основе данных их ini-файла его конфигурации и сопоставленных им маркерных папок. Новые пакеты парсятся корректно. У башратовских, где идет 64\All или 64\Vista пока не учитывается битность пакета.
Но, это уже решаемо. Труднее с ХП - там определить, что относится к XP, а что к серверу автоматом невозможно (имею ввиду папки). Только ручной перебор фала индекса.

wolkow70
27-10-2012, 17:26
Скачать DriverX 1.87 »

По ссылке качается 2.2. Можно считать эту версию стабильной?
Просьба к автору не обижаться, но можно ли убрать баннер "Помочь проекту" ?

SOLON7
27-10-2012, 18:19
По ссылке качается 2.2. Можно считать эту версию стабильной? »

до версии 2 можно считать стабильной пока.

Касательно банера вопрос не уместный !!!

denis666
15-11-2012, 13:44
Автор в курсе, что есть уже Driverx v.3.02 (15.11.2012)? :)
Можно посмотреть здесь: http://www.izbushkinet.ru/index.php?newsid=707882

SamLab
15-11-2012, 14:19
3.02 пока глючная - 3.01 самая стабильная из трешек

SOLON7
15-11-2012, 18:41
Автор в курсе, что есть уже Driverx v.3.02 (15.11.2012)?
Можно посмотреть здесь: http://www.izbushkinet.ru/index.php?newsid=707882 »

Да в курcе xDDD. вот только Вам забыли сказать что она нерабочая ))

SamLab, Сем удали пожалуйста. ветка 3.X проходит бета тестирование.
В Бета тесте учавствуют Кварк,СемЛаб, и ДеадВульф.
Все трое давно уже мониторят проект и понимают что и как в Теме ДРАЙВЕРОФФ точка НЕТ (http://driveroff.net/).

Всех остальных прошу мило ждать..... Пока не будет Релиз 3 версии прошу вопросов не задавать...

wolfus@vk
26-12-2012, 11:04
Не найден 7za.dll, devcon.exe, devcon64.exe.
После запуска нихрена непонятно что делать.
Driver Genius рулит




© OSzone.net 2001-2012