![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.227.46.243] |
![]() |
|
Сообщ.
#1
,
|
|
|
Ранее в программе использовал дату BIOS с помощью функции GetBIOSDate. Но с распространением компьютеров с загрузкой типа UEFI функция перестала работать.
Используются Delphi 5 и 7. Что посоветуете? |
![]() |
Сообщ.
#2
,
|
|
В ключе реестра HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System, параметр SystemBiosDate
Или в ключе HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS, параметр BIOSReleaseDate |
Сообщ.
#3
,
|
|
|
Цитата Krid @ Это для BIOS или для UEFI ? Нужно для UEFI. |
Сообщ.
#4
,
|
|
|
Цитата Krid @ Для UEFI не работает !!!! |
![]() |
Сообщ.
#5
,
|
|
Как именно оно не работает и как ты получаешь дату UEFI?
ЗЫ советую сначала разобраться, в чем отличие "old BIOS" от UEFI, прежде, чем такие вопросы задавать. |
Сообщ.
#6
,
|
|
|
Не работает потому что для разных версий Windows путь в реестре к ключу BIOSReleaseDate разный.
Как через Delphi узнать путь для ключа реестра BIOSReleaseDate, в случае если неизвестно, на какой версии Windows будет работать программа? |
![]() |
Сообщ.
#7
,
|
|
Ну в данном случае, придётся написать ф-ю, получающую дату BIOS/UEFI, в зависимости от версии.
Даже если ты напишешь драйвер режима ядра, всё равно дата выпуска/обновления BIOS/UEFI будет находиться в разной области памяти, в зависимости от версии. Короче, однозначно получить правильную дату у тебя скорей всего не получится. Тебе, как и с получением версии винды, придётся писать отдельную ф-ю, с большим числом кейсов. И для драйвера будет то же самое. Ну это, конечно, в том случае, если ты хочешь получать дату выпуска/обновления BIOS/UEFI любой версии. |
![]() |
Сообщ.
#8
,
|
|
WMI то чем не подошел?
https://docs.microsoft.com/en-us/windows/wi...prov/win32-bios |
![]() |
Сообщ.
#9
,
|
|
Как я понял, ему нужны прям именно системные вызовы. Так что я даже wmi ему не стал предлагать.
|