1.笨方法,通过判断系统文件夹路径procedure TForm1.Button1Click(Sender: TObject); var TempDir: array[0..255] of Char; begin GetSystemDirectory(@TempDir,255); Caption := StrPas(TempDir); end; 2.const cOsUnknown = -1; cOsWin95 = 0; cOsWin98 = 1; cOsWin98SE = 2; cOsWinME = 3; cOsWinNT = 4; cOsWin2000 = 5; cOsXP = 6;function TForm1.GetOperatingSystem: Integer; var osVerInfo: TOSVersionInfo; majorVer, minorVer: Integer; begin Result := cOsUnknown; { set operating system type flag } osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); if GetVersionEx(osVerInfo) then begin majorVer := osVerInfo.dwMajorVersion; minorVer := osVerInfo.dwMinorVersion; case osVerInfo.dwPlatformId of VER_PLATFORM_WIN32_NT: { Windows NT/2000 } begin if majorVer <= 4 then Result := cOsWinNT else if (majorVer = 5) and (minorVer = 0) then Result := cOsWin2000 else if (majorVer = 5) and (minorVer = 1) then Result := cOsXP else Result := cOsUnknown; end; VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } begin if (majorVer = 4) and (minorVer = 0) then Result := cOsWin95 else if (majorVer = 4) and (minorVer = 10) then begin if osVerInfo.szCSDVersion[1] = 'A' then Result := cOsWin98SE else Result := cOsWin98; end else if (majorVer = 4) and (minorVer = 90) then Result := cOsWinME else Result := cOsUnknown; end; else Result := cOsUnknown; end; end else Result := cOsUnknown; end; procedure TForm1.Button2Click(Sender: TObject); begin case GetOperatingSystem of cOsUnknown: Caption := 'Unknown'; cOsWin95: Caption := 'Win95'; cOsWin98: Caption := 'Win98'; cOsWin98SE: Caption := 'Win98SE'; cOsWinME: Caption := 'WinME'; cOsWinNT: Caption := 'WinNT'; cOsWin2000: Caption := 'Win2000'; cOsXP: Caption := 'WinXP'; end; end;
var
TempDir: array[0..255] of Char;
begin
GetSystemDirectory(@TempDir,255);
Caption := StrPas(TempDir);
end;
2.const
cOsUnknown = -1;
cOsWin95 = 0;
cOsWin98 = 1;
cOsWin98SE = 2;
cOsWinME = 3;
cOsWinNT = 4;
cOsWin2000 = 5;
cOsXP = 6;function TForm1.GetOperatingSystem: Integer;
var
osVerInfo: TOSVersionInfo;
majorVer, minorVer: Integer;
begin
Result := cOsUnknown;
{ set operating system type flag }
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
begin
majorVer := osVerInfo.dwMajorVersion;
minorVer := osVerInfo.dwMinorVersion;
case osVerInfo.dwPlatformId of
VER_PLATFORM_WIN32_NT: { Windows NT/2000 }
begin
if majorVer <= 4 then
Result := cOsWinNT
else if (majorVer = 5) and (minorVer = 0) then
Result := cOsWin2000
else if (majorVer = 5) and (minorVer = 1) then
Result := cOsXP
else
Result := cOsUnknown;
end;
VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME }
begin
if (majorVer = 4) and (minorVer = 0) then
Result := cOsWin95
else if (majorVer = 4) and (minorVer = 10) then
begin
if osVerInfo.szCSDVersion[1] = 'A' then
Result := cOsWin98SE
else
Result := cOsWin98;
end
else if (majorVer = 4) and (minorVer = 90) then
Result := cOsWinME
else
Result := cOsUnknown;
end;
else
Result := cOsUnknown;
end;
end
else
Result := cOsUnknown;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
case GetOperatingSystem of
cOsUnknown: Caption := 'Unknown';
cOsWin95: Caption := 'Win95';
cOsWin98: Caption := 'Win98';
cOsWin98SE: Caption := 'Win98SE';
cOsWinME: Caption := 'WinME';
cOsWinNT: Caption := 'WinNT';
cOsWin2000: Caption := 'Win2000';
cOsXP: Caption := 'WinXP';
end;
end;
可能是我的问题误导了大家我的意思是比如硬盘里安装了98、2000双系统,我想把每个系统的WINDOWS目录路径找出来,和判断当前运行的是哪个系统