• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Как определить какой 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 читаем тут:
Про структуру OSVERSIONINFOEX читаем тут:

Вариант третий: (для особо ленивых) - не заморачиваться ;)
Вот тут Демо проект (Delphi 7)
к статье Питера Джонсона
 
Мы в соцсетях:

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