Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.09;
Скачать: CL | DM;

Вниз

Как выяснить установлен у юзера XP SP2 или нет?   Найти похожие ветки 

 
leonidus ©   (2007-07-13 11:32) [0]

Собственно сабж. Суть в том, что моя программа конфликтует с DEP, который появился только в SP2, и мне нужно определить какой SP и если это SP2 то вывести информацию о том, как правильно настроить систему. Подскажите как надежно выяснить сей факт.


 
Инс ©   (2007-07-13 11:39) [1]

unit WinVersionInfo;

interface

uses
 Windows, SysUtils, Classes;

type
 TPlatformID = (pID_Win32s, pID_Win9x, pID_WinNT, pID_Unknown);

 TWinVersionInfo = class(TComponent)
 private
   FInfo: TOSVersionInfo;
   FPlatformID: TPlatformID;
   FBuild: integer;
   FWindowsName, FAdditionalInfo: string;
   FLatformID: TPlatformID;
 protected
   procedure GetInfo; virtual;
 public
   constructor Create(AOwner: TComponent); override;
   property Info: TOSVersionInfo read FInfo;
   property PlatformID: TPlatformID read FLatformID;
   property Build: integer read FBuild;
   property WindowsName: string read FWindowsName;
   property AdditionalInfo: string read FAdditionalInfo;
 end;

implementation

{ TWinVersionInfo }

constructor TWinVersionInfo.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 GetInfo;
end;

procedure TWinVersionInfo.GetInfo;
begin
 FPlatformID:=pID_Unknown;
 FBuild:=0;
 FWindowsName:="Unknown";
 FAdditionalInfo:="";
 FillChar(FInfo,SizeOf(TOSVersionInfo),0);
 FInfo.dwOSVersionInfoSize:=SizeOf(TOSVersionInfo);
 if GetVersionEx(FInfo) then begin;
   case FInfo.dwPlatformId of
     VER_PLATFORM_WIN32s:
       begin
         FPlatformID:=pID_Win32s;
         FWindowsName:="Windows 3.1";
       end;
     VER_PLATFORM_WIN32_WINDOWS:
       begin
         FPlatformID:=pID_Win9x;
         if FInfo.dwMinorVersion = 0 then FWindowsName:="Windows 95";
         if FInfo.dwMinorVersion = 10 then FWindowsName:="Windows 98";
         if FInfo.dwMinorVersion = 90 then FWindowsName:="Windows Me";
       end;
     VER_PLATFORM_WIN32_NT:
       begin
         FPlatformID:=pID_WinNT;
         if (FInfo.dwMajorVersion = 3) or (FInfo.dwMajorVersion = 4) then
           FWindowsName:="Windows NT "+IntToStr(FInfo.dwMajorVersion)+
             "."+IntToStr(FInfo.dwMinorVersion);
         if FInfo.dwMajorVersion = 5 then begin
           if FInfo.dwMinorVersion = 0 then FWindowsName:="Windows 2000";
           if FInfo.dwMinorVersion = 1 then FWindowsName:="Windows XP";
           if FInfo.dwMinorVersion = 2 then FWindowsName:="Windows .NET Server 2003 family";
         end;
       end;
   end;
   FBuild:=(FInfo.dwBuildNumber and $0000FFFF);
   FAdditionalInfo:=FInfo.szCSDVersion;
 end;
end;

end.


 
leonidus ©   (2007-07-13 13:54) [2]

ну так это определение версии винды а не сервис пака...


 
Anatoly Podgoretsky ©   (2007-07-13 14:06) [3]

http://podgoretsky.com/ftp/Language/nps/ru.delphi.html#N115


 
Amoeba ©   (2007-07-13 14:11) [4]

Если конфликтует с DEP, то, значит, DEP на данном компьютере включен для всех программ и служб. Так что проще всего сделать нужные настройки вручную, тем более что никакой сложности в этом нет: зайти на соответствующую вкладку свойств системы и добавить твою программу в список.

И вообще, не стоит впустую тратить время. Все равно лучше настраивать вручную. Да и наличие SP2 сразу видно в свойствах системы.


 
Инс ©   (2007-07-13 14:15) [5]


> ну так это определение версии винды а не сервис пака...


В AdditionalInfo содержится информация о SP



Страницы: 1 вся ветка

Текущий архив: 2008.03.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
15-1201870682
oxffff
2008-02-01 15:58
2008.03.09
A million licenses of RAD Studio for Russia


8-1176487025
I-New
2007-04-13 21:57
2008.03.09
Как узнать количество кадров в GIF анимации?


15-1201714579
БарЛог
2008-01-30 20:36
2008.03.09
УПС своими руками


15-1201834853
Slider007
2008-02-01 06:00
2008.03.09
С днем рождения ! 1 февраля 2008 пятница


15-1201942448
kiber-pilot
2008-02-02 11:54
2008.03.09
Генерация словоформ