Форум: "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