Как определить какой Service Pack установлен в Windows?

  • Автор темы Автор темы Port111
  • Дата начала Дата начала
P

Port111

Здравствуйте. Подскажите как определить в Delphi какой SP установлен в Windows?
 
Здравствуйте. Подскажите как определить в Delphi какой SP установлен в Windows?
Вариант первый: "Прочитать" значение глобальной переменной юнита SysUtils
Код:
uses
SysUtils;
...
ShowMessage(Win32CSDVersion);
Это работает если у вас WInXP или старше.


Вариант второй:
1. Вызвать WinAPI функцию GetVersionEx.
Код:
type
TOSVersionInfoEx = packed record
dwOSVersionInfoSize: DWORD;
dwMajorVersion: DWORD;
dwMinorVersion: DWORD;
dwBuildNumber: DWORD;
dwPlatformId: DWORD;
szCSDVersion: array[0..127] of AnsiChar;
wServicePackMajor: WORD;
wServicePackMinor: WORD;
wSuiteMask: WORD;
wProductType: Byte;
wReserved: Byte;
end;

...
var
osvi : TOSVersionInfoEx;
begin
ZeroMemory(@osvi, sizeof(TOSVersionInfoEx));
osvi.dwOSVersionInfoSize := sizeof(TOSVersionInfoEx);
GetVersionEx(osvi);
...
end;
2. Обработать значения полей, szCSDVersion, wServicePackMajor и wServicePackMinor структуры TOSVersionInfoEx.
Про функцию GetVersionEx читаем тут: http://msdn.microsoft.com/en-us/library/ms724451(VS.85).aspx
Про структуру OSVERSIONINFOEX читаем тут: http://msdn.microsoft.com/en-us/library/ms724833(VS.85).aspx

Вариант третий: (для особо ленивых) - не заморачиваться ;)
Вот тут Демо проект (Delphi 7) http://www.delphidabbler.com/zip/demos/article-23-demo.zip
к статье Питера Джонсона How to get operating system version information
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab