Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 702

/ вопрос решён /

Здравствуйте, уважаемые эксперты!Как узнать какой servise pack, build ос ; производителя и версию bios

Аксион Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Аксион (статус: 4-ый класс)
Вопрос отправлен: 4 июля 2007, 20:13
Состояние вопроса: решён, ответов: 3.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, ММО!
Смотрим в приложении. Для версии биоса - под нт только. И не всегда выдаёт всё инфу. тестированно работает.

Приложение:
  1.  
  2. uses Registry;
  3. function ReadMultirowKey(reg: TRegistry; Key: string): TStrings;
  4. const bufsize = 100;
  5. var
  6. i: integer;
  7. s1: string;
  8. sl: TStringList;
  9. bin: array[1..bufsize] of char;
  10. begin
  11. try
  12. result := nil;
  13. sl := nil;
  14. sl := TStringList.Create;
  15. if not Assigned(reg) then
  16. raise Exception.Create('TRegistry object not assigned.');
  17. FillChar(bin,bufsize,#0);
  18. reg.ReadBinaryData(Key,bin,bufsize);
  19. i := 1;
  20. s1 := '';
  21. while i < bufsize do
  22. begin
  23. if ord(bin[i]) >= 32 then
  24. s1 := s1 + bin[i]
  25. else
  26. begin
  27. if Length(s1) > 0 then
  28. begin
  29. sl.Add(s1);
  30. s1 := '';
  31. end;
  32. end;
  33. inc(i);
  34. end;
  35. result := sl;
  36. except
  37. sl.Free;
  38. raise;
  39. end;
  40.  
  41. end;
  42.  
  43.  
  44. procedure GetRegInfoWinNT;
  45. var
  46. Registryv : TRegistry;
  47. RegPath : string;
  48. sl : TStrings;
  49. begin
  50. //Params.Clear;
  51. RegPath := 'HARDWAREDESCRIPTIONSystem';
  52. registryv:=tregistry.Create;
  53. registryv.rootkey:=HKEY_LOCAL_MACHINE;
  54. sl := nil;
  55. try
  56. registryv.Openkey(RegPath,false);
  57. ShowMessage('BIOS Date: '+RegistryV.ReadString('SystemBiosDate'));
  58. sl := ReadMultirowKey(RegistryV,'SystemBiosVersion');
  59. ShowMessage('BIOS Version: '+sl.Text);
  60. except
  61.  
  62. end;
  63. Registryv.Free;
  64. if Assigned(sl) then sl.Free;
  65. end;
  66.  
  67.  
  68. Type TOSVersion=(osUnknown, osUnknown9x, osUnknownNT, osWin95, osWin98, osWin98SE, osWinME, osWinNT, osWin2000, osXP);
  69.  
  70. function GetOSVersion : TOSVersion;
  71. var osVerInfo : TOSVersionInfo;
  72. majorVer, minorVer : Integer;
  73. begin
  74. result := OsUnknown;
  75. osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
  76. if GetVersionEx(osVerInfo) then
  77. begin
  78. majorVer := osVerInfo.dwMajorVersion;
  79. minorVer := osVerInfo.dwMinorVersion;
  80.  
  81.  
  82. case osVerInfo.dwPlatformId of
  83. VER_PLATFORM_WIN32_NT :
  84. Case majorVer of
  85. 4:result := OsWinNT;
  86. 5:if minorVer=0 then result := OsWin2000
  87. else
  88. if minorVer=1 then result := OsXP else result := osUnknownNT;
  89. else result := osUnknownNT;
  90. end; {Case majorVer of}
  91. VER_PLATFORM_WIN32_WINDOWS :
  92. case majorVer of
  93. 4: Case minorVer of
  94. 0:result := OsWin95;
  95. 10: if osVerInfo.szCSDVersion[1] = 'A' then result := OsWin98SE else result := OsWin98;
  96. 90: result := OsWinME;
  97. else result := osUnknown9x;
  98. end;{Case minorVer of}
  99. else result := osUnknown9x;
  100. end{case majorVer of}
  101. else result := OsUnknown;
  102. end;{case osVerInfo.dwPlatformId of}
  103. end;{if GetVersionEx(osVerInfo) then}
  104. end;
  105.  
  106. procedure Button1Click;
  107. begin
  108. case GetOSVersion of
  109. osUnknown: Showmessage('Unknown');
  110. osWin95: Showmessage('Win95');
  111. osWin98: Showmessage('Win98');
  112. osWin98SE: Showmessage('Win98SE');
  113. osWinME: Showmessage('WinME');
  114. osWinNT: Showmessage('WinNT');
  115. osWin2000: Showmessage('Win2000');
  116. osXP: Showmessage('XP');
  117. end;
  118. end;
  119.  
  120. procedure TForm1.FormCreate(Sender: TObject);
  121. begin
  122. Button1Click
  123. end;
  124.  
  125.  


Ответ отправил: Вадим К (статус: Академик)
Время отправки: 4 июля 2007, 20:34
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Градов Ю.М.

Здравствуйте, ММО!
Я Вам немного нашел информации, скачайте ее в прикреплённом файле.
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: Градов Ю.М. (статус: 8-ой класс)
Время отправки: 4 июля 2007, 21:08
Оценка за ответ: 5

Ответ #3. Отвечает эксперт: min@y™

Ещё могу посоветовать намыть в Сети пакет модулей Delphi Works. Про BIOS там, к сожалению, ничего нет, а вот про систему - полно. И вообще, там много чего есть полезного.

http://delphiworks.sourceforge.net/index.htm

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 5 июля 2007, 08:28
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 0.

31 января 2011, 19:23: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:57
Выполнено за 0.03 сек.