Главная страница
    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.227 c
3-1192783481
alsov
2007-10-19 12:44
2008.03.09
Поиск по blob полю


4-1184547973
AlexanderMS
2007-07-16 05:06
2008.03.09
Рисование с изменённой палитрой.


15-1201712107
AlexanderMS
2008-01-30 19:55
2008.03.09
Сжатие изображений.


2-1202772539
Abcdef123
2008-02-12 02:28
2008.03.09
Вопрос по Exception.


2-1202925450
daskel
2008-02-13 20:57
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский