-
Как определить тип ОС вместе с сервиспаком? Под типом я подразумеваю название (нужно выбирать между XP,Vista и Seven) и разрядность 32 или 64 ? Все что есть в инете определяет в лучшем случае до висты, а с разрядностью вообще темный лес... Подскажите пожалуйста!
-
unit uWinVersion;
interface
uses
Windows, SysUtils, Classes;
type
TOSPlatform = (
ospWinNT, ospWin9x, ospWin32s );
TOSProduct = (
osUnknownWinNT, osWinNT, osWin2K, osWinXP, osUnknownWin9x, osWin95, osWin98, osWinMe, osUnknownWin32s, osWinSvr2003, osUnknown, osWinVista, osWinSvr2003R2, osWinSvr2008, osWinLater, osWin7, osWinSvr2008R2 );
TProcessorArchitecture = (
paUnknown, paX64, paIA64, paX86 );
ESysInfo = class(Exception);
TOSInfo = class(TObject)
private
class function EditionFromProductInfo: string;
class function CheckSuite(const Suite: Integer): Boolean;
class function EditionFromReg: string;
class function IsNT4SP6a: Boolean;
class function ProductTypeFromReg: string;
public
class function IsWin9x: Boolean;
class function IsWinNT: Boolean;
class function IsWin32s: Boolean;
class function IsWow64: Boolean;
class function IsServer: Boolean;
class function IsMediaCenter: Boolean;
class function IsTabletPC: Boolean;
class function IsRemoteSession: Boolean;
class function IsWinVista: Boolean;
class function IsWinServer2008: Boolean;
class function IsWinServer2008R2: Boolean;
class function IsWin7: Boolean;
class function HasPenExtensions: Boolean;
class function Platform: TOSPlatform;
class function Product: TOSProduct;
class function ProductName: string;
class function MajorVersion: Integer;
class function MinorVersion: Integer;
class function BuildNumber: Integer;
class function ServicePackString: string;
class function ServicePackMajor: Integer;
class function ServicePackMinor: Integer;
class function EditionString: string;
class function Description: string;
class function ProductID: string;
class function GetTrueWindowsVersion: TOSProduct;
end;
var
Win32HaveExInfo: Boolean = False;
Win32ServicePackMajor: Integer = 0;
Win32ServicePackMinor: Integer = 0;
Win32SuiteMask: Integer = 0;
Win32ProductType: Integer = 0;
Win32HaveProductInfo: Boolean = False;
Win32ProductInfo: LongWord = 0;
-
DVM спасибо, но это только описание класса, а как на счет непосредственно функций реализующих определение типов ОС?
-
-
Большое спасибо!
DVM, подскажите плиз, как работать с классом? Нам в общем много лишнего, мне же нужно определить только тип ОС и SP, разрядность я определил уже другим способом.
-
Прошу прощения, ступил. Все встало на свои места, большое спасибо еще раз!
|