Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];

Вниз

Как выяснить установлен у юзера 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
11-1183368735
Delphuk
2007-07-02 13:32
2008.03.09
Ошибка после нескольких вызывов MCK формы из DLL


2-1202575224
Master_Of_Puppets
2008-02-09 19:40
2008.03.09
Снова о TreeView. Проблемы с корнем.


2-1202725182
Artem
2008-02-11 13:19
2008.03.09
Проблема с WebBrowser


15-1200865358
TStas
2008-01-21 00:42
2008.03.09
Беда с флешкой


15-1202127812
xayam
2008-02-04 15:23
2008.03.09
Проект "Россия"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский