type
TOSVersion = (osUnknown, os95, os95OSR2, os98, os98SE, osNT3, osNT4, os2K, osME,osXP); Function IsNT(var OS:string): boolean;//判断是否是NT系统
Function GetOS :TOSVersion; //获得操作系统//获取操作系统
function GetOS;
var
OS :TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
Result:=osUnknown;
if OS.dwPlatformId=VER_PLATFORM_WIN32_NT then
begin
case OS.dwMajorVersion of
3: Result:=osNT3;
4: Result:=osNT4;
5: begin
if OS.dwMinorVersion>=1 then
Result:=osXP
else
Result:=os2K;
end;
end;
end
else
begin
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=0) then
begin
Result:=os95;
if (Trim(OS.szCSDVersion)='B') then
Result:=os95OSR2;
end
else
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=10) then
begin
Result:=os98;
if (Trim(OS.szCSDVersion)='A') then
Result:=os98SE;
end
else
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=90) then
Result:=osME;
end;
end;//判断是否时NT系统
function IsNT(var OS:string): boolean;
var
OSVI :TOSVersion;
begin
OS:='不知道';
OSVI:=GetOs;
if OSVI=osNT3
then OS:='Window NT3';
if OSVI=OSNT4
then OS:='Window NT4';
if OSVI=os2K
then OS:='Winodw 2000';
if OSVI=os95
then OS:='Window 95';
if OSVI=os95OSR2
then OS:='Window 97';
if OSVI=os98
then OS:='Winodw 98';
if OSVI=os98SE
then OS:='Winodw 98SE';
if OSVI=osME
then OS:='Winodw ME';
Result:=GetOS in [osNT3,osNT4,os2K,osXP];
end;
TOSVersion = (osUnknown, os95, os95OSR2, os98, os98SE, osNT3, osNT4, os2K, osME,osXP); Function IsNT(var OS:string): boolean;//判断是否是NT系统
Function GetOS :TOSVersion; //获得操作系统//获取操作系统
function GetOS;
var
OS :TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
Result:=osUnknown;
if OS.dwPlatformId=VER_PLATFORM_WIN32_NT then
begin
case OS.dwMajorVersion of
3: Result:=osNT3;
4: Result:=osNT4;
5: begin
if OS.dwMinorVersion>=1 then
Result:=osXP
else
Result:=os2K;
end;
end;
end
else
begin
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=0) then
begin
Result:=os95;
if (Trim(OS.szCSDVersion)='B') then
Result:=os95OSR2;
end
else
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=10) then
begin
Result:=os98;
if (Trim(OS.szCSDVersion)='A') then
Result:=os98SE;
end
else
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=90) then
Result:=osME;
end;
end;//判断是否时NT系统
function IsNT(var OS:string): boolean;
var
OSVI :TOSVersion;
begin
OS:='不知道';
OSVI:=GetOs;
if OSVI=osNT3
then OS:='Window NT3';
if OSVI=OSNT4
then OS:='Window NT4';
if OSVI=os2K
then OS:='Winodw 2000';
if OSVI=os95
then OS:='Window 95';
if OSVI=os95OSR2
then OS:='Window 97';
if OSVI=os98
then OS:='Winodw 98';
if OSVI=os98SE
then OS:='Winodw 98SE';
if OSVI=osME
then OS:='Winodw ME';
Result:=GetOS in [osNT3,osNT4,os2K,osXP];
end;
var
PlatForm:String;
BuildNumber:Integer;
begin
case Win32PlatForm of
VER_PLATFORM_WIN32_WINDOWS:
begin
PlatForm:='Windows 98';
BuildNumber:=Win32BuildNumber and $0000FFFF;
end;
VER_PLATFORM_WIN32_NT:
begin
PlatForm:='Windows NT';
BuildNumber:=Win32BuildNumber;
end
else
begin
PlatForm:='Windows';
BuildNumber:=0;
end;
end;
if (Win32PlatForm = VER_PLATFORM_WIN32_WINDOWS) or (Win32PlatForm = VER_PLATFORM_WIN32_NT) then
begin
if Win32CSDVersion = '' then
lblSystem.Caption:=Format('%s %d.%d(Build %d)',[PlatForm,Win32MajorVersion,Win32MinorVersion,BuildNumber])
else
lblSystem.Caption:=Format('%s %d.%d(Build %d:%s)',[PlatForm,Win32MajorVersion,Win32MinorVersion,BuildNumber,Win32CSDVersion]);
end
else
lblSystem.Caption:=Format('%s %d.%d',[PlatForm,Win32MajorVersion,Win32MinorVersion]);
end;
function getVersion():string;
var VersionInfo: TOSVersionInfo;
sys_flag:string;
begin VersionInfo.dwOSVersionInfoSize := Sizeof(TOSVersionInfo);
if GetVersionEx(VersionInfo) then
begin
Case VersionInfo.dwPlatformID of
VER_PLATFORM_WIN32S: sys_flag:='win32';
VER_PLATFORM_WIN32_WINDOWS:sys_flag:='win95';
VER_PLATFORM_WIN32_NT:sys_flag:='winnt'; end;
result:=sys_flag;
end
else
result:='fail';
end;