首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

在Win7下使用delphi7开发,用代码判断操作系统时返回结果是XP,为何?该怎么处理

2012-04-27 
在Win7下使用delphi7开发,用代码判断操作系统时返回结果是XP,为何?判断操作系统版本的代码是在网上找的,如

在Win7下使用delphi7开发,用代码判断操作系统时返回结果是XP,为何?
判断操作系统版本的代码是在网上找的,如下:


function GetWindowsVersionString: AnsiString;
var
  VI: TOSVersionInfoA;
begin
  VI.dwOSVersionInfoSize := SizeOf(TOSVersionInfoA);
  if GetVersionExA(VI) then
  with VI do
  Result := Trim(
  Format(
  '%d.%d build %d %s',
  [dwMajorVersion, dwMinorVersion, dwBuildNumber, szCSDVersion]
  )
  )
  else
  Result := '';
end;


function GetWindowsVersion: String; //读取操作系统版本
var
  AWin32Version: Extended;
  os:string;
begin
  os:='Windows ';
  AWin32Version := StrtoFloat(format('%d.%d' ,[Win32MajorVersion,Win32MinorVersion]));
  if Win32Platform=VER_PLATFORM_WIN32s then
  Result := os + '32'
  else if Win32Platform=VER_PLATFORM_WIN32_WINDOWS then
  begin
  if AWin32Version=4.0 then
  Result := os + '95'
  else if AWin32Version=4.1 then
  Result := os + '98'
  else if AWin32Version=4.9 then
  Result := os + 'Me'
  else
  Result := os + '9x'
  end
  else if Win32Platform = VER_PLATFORM_WIN32_NT then
  begin
  if AWin32Version=3.51 then
  Result := os + 'NT 3.51'
  else if AWin32Version=4.0 then
  Result := os + 'NT 4.0'
  else if AWin32Version=5.0 then
  Result := os + '2000'
  else if AWin32Version=5.1 then
  ShowMessage('xp系统')
  else if AWin32Version=5.2 then
  Result := os + '2003'
  else if AWin32Version=6.0 then
  begin
  ShowMessage('vista系统')
  end
  else if AWin32Version=6.1 then
  Result := os + '7'
  else
  Result := os ;
  end
  else
  Result := os + '??';
  Result:=Result + ' '+GetWIndowsVersionString;
end;

[解决办法]
自己在注册表中查查你的操作系统版本号看看,是不是与你读出的一致

热点排行