Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];




Вниз

Производитель, дата и версия BIOS 


SAlex   (2001-08-01 16:11) [0]

Можно ли определить производителя BIOS, дату и версию? Если можно то как это сделать в Window 98 и 2000?



Rabinovich   (2001-08-01 21:46) [1]

Бери из реестра:

LM\Enum\Root\*PNP0C01\0000\



SAlex   (2001-08-02 10:10) [2]

Это одинаково для Win 2000 и для Win9x или для одной из них? Просто у меня есть пример кода где в Win 2000 информация берется из реестра, а для Win 98 из памяти, т. к. в Win 2000 нет прямого доступа к памяти, а в Win 98 информация в реестре не хранится /это касается даты BIOS/.



Anatoly Podgoretsky   (2001-08-02 12:06) [3]

Хранится
BiosDate = 10/13/00
^^^^^^^^
BiosVersion = Award Modular BIOS v4.51PG
BiosName = Award



Некто   (2001-08-03 20:53) [4]

> Anatoly Podgoretsky.
Ради интереса посмотрел в свой реестр и прочитал
BiosDate = 07/21/97
BiosVersion = Award Modular BIOS v4.51PG
BiosName = Award
В первую секунду бросмло в жар! Почему у купленной 2 недели назад ABIT KT7A такой старый BIOS. Потом дошло, что эти данные от прежней мамки. А от новой - никаких данных нет. Я это к тому, что предложенный способ не всегда годится.



Anatoly Podgoretsky   (2001-08-04 11:32) [5]

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

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



Polevi   (2001-08-04 18:00) [6]

Лучше всего снести все устройства (вплоть до системного динамика :-)))



Некто   (2001-08-05 01:45) [7]

Не понял Polevi, шутка или всерьез.
2 Anatoly.
Я сменил не только плату. Фактически я поставил свой винт на новый системный блок( не считая флопи). Насчет стирания записей -
1. - ничего не стирал
2. - все новые устройсва найдены и перечислены в "Системе".
P.S. На первый взгляд, разумею, что Windows пишет эти данные в реестр при СВОЕЙ установке. Но для "Control Panel" пользуется не ими, а другими способами.



Anatoly Podgoretsky   (2001-08-05 02:22) [8]

Правильно, так что :-))) не вполне уместно, человек сменил плату, но система осталась в старом состоянии



Некто   (2001-08-05 03:51) [9]

? Правильно?
Я ведь писал последнее сообщение, имея в виду операцию стирания записей "(а ее проводить надо) ". Так вот - для чего надо - чтобы в будующем программа SAlex смогла все правильно определить, или есть более существенные основания? Ведь в старом состоянии остался только реестр, точнее некоторые записи в нем, а сама система обновилась полностью, со всеми деталями.



Anatoly Podgoretsky   (2001-08-05 12:49) [10]

Смотри сообщение "Anatoly Podgoretsky (04.08.01 11:32)"
первый абзац, это означает что нет полностью работающих методов получения данной информации. Более менее можно надеяться на только на дату.

Насчет методов - достоверность подразумевает, что информация считывается не с реестра, а напрямую из BIOS, значит остро стоит вопрос чтения чужой памяти, без драйверов kernel mode - эта часть также не имеет пполного решения. Ну и после того как решили эту задачу становится следующая уже не разрешимая задача, а где и в каком виде зранится эта информация, опять смотри первый абзац от 4.08.01

После всего это можно задаться следующим вопросом, а нафига вообще нужна эта информация, какую практическую пользу она может принести.

Вот моя точка зрения и видение данной проблемы. Ну я дума. на последний вопрос "а зачем ему это нужно" может ответить только сам SAlex



Dreamlord   (2001-08-07 10:29) [11]

informaciq standartizirovana. v reestre ona v hkey_local_machine\enum\root\pnp0c01. eto vazit dlq win95-2000. q i tam ee ishtu kazdii raz i otkrivaiu :)



Anatoly Podgoretsky   (2001-08-07 11:16) [12]

Ты несешь ответственность за свои слова насчет стандартизации.
Приведи стандарт, ну или хотя на скольких БИОС от разных производителей ты провел испытание в подтверждение своих слов.
Причем тут реестр, речь про БИОС, реестр вторичное.



Alexander   (2001-08-07 11:49) [13]

Если посмотреть в реестре ключ
HKLM\Enum\Root\*PNP0C01\0000\
то там будет инфа о первой системе, а если с момента установки
Windows что-то изменилось, то должны появиться ключи
HKLM\Enum\Root\*PNP0C01\0001\ <- вторая материнка
HKLM\Enum\Root\*PNP0C01\0002\ <- третья материнка
etc
следовательно, тот ключ, у которого последнее число больше, и должен
содержать необходимую инфу.

Конечно, информацию о предыдущих системах можно удалить,
но никакой пользы это не принесет (впрочем, и вреда тоже),
хотя тогда неизвестно, куда Windows запишет инфу о новой ситеме:
в HKLM\Enum\Root\*PNP0C01\0000\
или
в HKLM\Enum\Root\*PNP0C01\XXXX\
и программа SAlex"а может выдать неправильные сведения

P.S. Привет Новоуральску!



Некто   (2001-08-08 02:16) [14]

Всего наилучшего Новоуральску!
Но, 2 Alexander:
прочитай мое сообщение от (03.08.01 20:53).
Никаких \0001\ или \000х\ у меня в реестре НЕТ. Есть только 0000.
При этом ВСЕ работает НОРМАЛЬНО!
"Система" все пишет, в соответсвии с новым железом, Sandra, в добавок, все это тестирует и выдает рекомендации.
Итог: соглашаюсь с Анатолием Подгоретским( лень переключаться на английский) - в данном случае, реестр может нагло врать, но это не является препятствием для нормальной работы компа. Эти сведения в реестре, только для справки в проданном вам компьютере. И все. Остальное в самом BIOS"e.



Anatoly Podgoretsky   (2001-08-08 13:12) [15]

Зачем английский, нормально и на русском, только одна ошибка буква TS = Ц.
Кстати я для этого использую cut&paste вместо ручного ввода :-)
А огрнаичения на БИОС я описал, но когда знаешь, то вооружен.
Alexander кстати правильно написаль насчет дополнительных веток.



ao1973   (2001-10-19 10:56) [16]

Народ! А как без реестра обойтись ???????



Ray   (2001-10-19 11:35) [17]

Я делал через голову но зато работает везде. Написал на ASM маленькую прогу которая сохраняет БИОС в обычный файл. Полученный .com файл приаттачил к программе в виде ресурса, потом уже под виндами создаеш файл из ресурса, запускаеш его, потом читаеш полученный image ьбиоса в TMemoryStream и все, дальше все просто. Система проверена и работает, можете убедиться, у меня на сайте http://rayadams.r2.ru лежит прога BIOS Info. (только там я на паскале писал снятие БИОСа, это в другой проге уже на АСМ)



uip88   (2001-10-30 12:49) [18]

function WOWGetVDMPointerFix(vp,dwBytes:DWORD; ProtectedMode:BOOL):pointer;
stdcall; external "WOW32.DLL";

procedure WOWGetVDMPointerUnfix(vp:pointer); stdcall; external "WOW32.DLL";

Type
TBIOSVer = array[0..$32] of byte;

function GetBIOSInfo : string;
Var
BIOSVer : ^TBIOSVer;
VerStr : string;
i : integer;
begin
BIOSVer := WOWGetVDMPointerFix($FE650621, 0, Bool(0));
i:=0;
while Chr(BIOSVer[i]) <> #0 do
begin
VerStr := VerStr + Chr(BIOSVer[i]); // Версия - в VerStr
inc(i);
end;
WOWGetVDMPointerUnfix(BIOSVer);
Result:=VerStr;
// Result:=Form1.MSystemInfo1.Workstation.BIOSExtendedInfo;
Inf("GetBIOSInfo");
end;




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.76 MB
Время: 0.029 c
7-19010           @andrew               2001-10-30 10:25  2002.02.07  
Привет Всем! Посоветуйте!


3-18739           anod                  2002-01-10 13:16  2002.02.07  
Хм... Фильтр


7-18995           Wizard_Ex             2001-10-26 16:10  2002.02.07  
Registry.ReadBinaryData - как изменить ключ


1-18839           DJ X                  2002-01-18 08:05  2002.02.07  
Генератор паролей


1-18786           MaTaDoR               2002-01-21 13:32  2002.02.07  
Активизируя родительское окно, оно не должно перекрывать дочернее