才20分呀,呵呵~~~~ procedure TMainForm.FormCreate(Sender: TObject); var osinfo: OSVERSIONINFO; begin osinfo.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO); GetVersionEx(osinfo); if (InttoStr(osinfo.dwMajorVersion)+'.'+IntToStr(osinfo.dwMinorVersion)+'.'+IntToStr(osinfo.dwBuildNumber))='5.0.2195' then ShowMessage('这是windows 2000'); end; 其他操作系统你一测试就知道了
function GetOSInfo: string; var Platform: string; BuildNumber: Integer; begin case Win32Platform of VER_PLATFORM_WIN32_WINDOWS: begin Platform := 'Windows 95'; 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 result := Format('%s %d.%d (Build %d)', [Platform, Win32MajorVersion, Win32MinorVersion, BuildNumber]) else result := Format('%s %d.%d (Build %d: %s)', [Platform, Win32MajorVersion, Win32MinorVersion, BuildNumber, Win32CSDVersion]); end else result := Format('%s %d.%d', [Platform, Win32MajorVersion, Win32MinorVersion]) end;
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CommDlg; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; type TOSVersion = (osUnknown, os95, os95OSR2, os98, os98SE, osNT3, osNT4, os2K, osME, osXP); var Form1: TForm1; implementation {$R *.DFM} function GetOS :TOSVersion; 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: Result:=os2K; end; if (OS.dwMajorVersion=5) and (OS.dwMinorVersion=1) then Result:=osXP; 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; procedure TForm1.Button1Click(Sender: TObject); var os:TosVersion; osVersion:string; begin os:=Getos; case OS of os95, os95OSR2: OSVersion:='Windows 95'; os98: OSVersion:='Windows 98'; os98SE: OSVersion:='Windows 98 第二版'; osME: OSVersion:='Windows Millenium Edition'; osNT3, osNT4: OSVersion:='Windows NT'; os2K: OSVersion:='Windows 2000'; osXP: OSVersion:='Windows XP'; end; showmessage(osversion); end; end.
procedure TMainForm.FormCreate(Sender: TObject);
var
osinfo: OSVERSIONINFO;
begin
osinfo.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
GetVersionEx(osinfo);
if (InttoStr(osinfo.dwMajorVersion)+'.'+IntToStr(osinfo.dwMinorVersion)+'.'+IntToStr(osinfo.dwBuildNumber))='5.0.2195' then
ShowMessage('这是windows 2000');
end;
其他操作系统你一测试就知道了
var
Platform: string;
BuildNumber: Integer;
begin
case Win32Platform of
VER_PLATFORM_WIN32_WINDOWS:
begin
Platform := 'Windows 95';
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
result := Format('%s %d.%d (Build %d)', [Platform, Win32MajorVersion,
Win32MinorVersion, BuildNumber])
else
result := Format('%s %d.%d (Build %d: %s)', [Platform, Win32MajorVersion,
Win32MinorVersion, BuildNumber, Win32CSDVersion]);
end
else
result := Format('%s %d.%d', [Platform, Win32MajorVersion,
Win32MinorVersion])
end;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, CommDlg; type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TOSVersion = (osUnknown, os95, os95OSR2, os98, os98SE, osNT3, osNT4, os2K, osME, osXP); var
Form1: TForm1; implementation {$R *.DFM} function GetOS :TOSVersion;
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: Result:=os2K;
end;
if (OS.dwMajorVersion=5) and (OS.dwMinorVersion=1) then
Result:=osXP;
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;
procedure TForm1.Button1Click(Sender: TObject);
var
os:TosVersion;
osVersion:string;
begin
os:=Getos;
case OS of
os95, os95OSR2: OSVersion:='Windows 95';
os98: OSVersion:='Windows 98';
os98SE: OSVersion:='Windows 98 第二版';
osME: OSVersion:='Windows Millenium Edition';
osNT3, osNT4: OSVersion:='Windows NT';
os2K: OSVersion:='Windows 2000';
osXP: OSVersion:='Windows XP';
end;
showmessage(osversion);
end; end.