请问如何获得当前系统的具体类型?

VisualLion 2003-08-22 02:22:54
请问如何获得当前系统的具体类型?
使用GetVersionEX只能获得大体的类型,比如win2000,winxp,windows .net server
请问怎样可以定位到具体的版本类型,比如Window 2000 Server
另外,好像GetVersionEX好像也区别不了winxp和windows .net server
...全文
61 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
baguli 2003-08-23
  • 打赏
  • 举报
回复
试一试我写的这个函数:
function GetWindowsVersionString: string;
begin
case Win32Platform of
VER_PLATFORM_WIN32s:
Result := 'Windows 3.x';
VER_PLATFORM_WIN32_WINDOWS:
Result := 'Windows 9x';
VER_PLATFORM_WIN32_NT:
case Win32MajorVersion of
3, 4: Result := 'Windows NT';
5: if Win32MinorVersion > 0 then
Result := 'Windows XP'
else
Result := 'Windows 2000';
else Result := 'Windows XP';
end;
else Result := 'Windows';
end;
Result := Format('%s %u.%u (Build %u) %s', [Result, Win32MajorVersion, Win32MinorVersion, Win32BuildNumber, Win32CSDVersion]);
end;
Cappuccino 2003-08-22
  • 打赏
  • 举报
回复
你是不是要判断是专业办,还是服务器版之类的?

那我有个建议,哈~你去读注册表吧~`里面有阿~~
系统全称~`版本号 Service pack 号都有~
VisualLion 2003-08-22
  • 打赏
  • 举报
回复
Cappuccino(小喆):
可你还是没有解决我的问题啊。
Cappuccino 2003-08-22
  • 打赏
  • 举报
回复
一个函数和一个过程

函数:用来判断系统版本号

function GetOSVersion;
var
OSVI :TOSVersionInfo;
begin
ZeroMemory(@OSVI, SizeOf(OSVI));
OSVI.dwOSVersionInfoSize := SizeOf(OSVI);
GetVersionEx(OSVI);
Result := OSUnknown;
if OSVI.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
case OSVI.dwMajorVersion of
3: Result := OSNT3;
4: Result := OSNT4;
5: Result := OS2K;
end;
if (OSVI.dwMajorVersion = 5) and (OSVI.dwMinorVersion = 1) then
begin
Result:=osXP;
end else
begin
if (OSVI.dwMajorVersion = 4) and (OSVI.dwMinorVersion = 0) then
begin
Result := OS95;
if (Trim(OSVI.szCSDVersion) = 'B') then
Result :=OS95OSR2;
end else
if (OSVI.dwMajorVersion = 4) and (OSVI.dwMinorVersion = 10) then
begin
Result := OS98;
if (Trim(OSVI.szCSDVersion) = 'A') then
Result := OS98SE;
end else
if (OSVI.dwMajorVersion = 4) and (OSVI.dwMinorVersion = 90) then
Result := OSME;
end;
end;
end;


过程:用来显示系统版本号

procedure GetOSVersionA;
var
OS: TOSVersion;
OSVersion: String;
begin
OS := GetOSVersion;;
case OS of
OS95: OSVersion:='Microsoft Windows 95';
OS95OSR2: OSVersion:='Microsoft Windows 95 OSR2';
OS98: OSVersion:='Microsoft Windows 98';
OS98SE: OSVersion:='Microsoft Windows 98 Second Edition';
OSME: OSVersion:='Microsoft Windows Millenium Edition';
OSNT3: OSVersion:='Microsoft Windows NT 3.X';
OSNT4: OSVersion:='Microsoft Windows NT 4.X';
OS2K: OSVersion:='Microsoft Windows 2000';
OSXP: OSVersion:='Microsoft Windows XP';
end;
Label_OSVersion.Caption := OSVersion ; //修改这里的VCL名称为你用的
end;
pankun 2003-08-22
  • 打赏
  • 举报
回复
GetVersionEX不是还可以得到附加版本号么,判断这个就可以了.
Cipherliu 2003-08-22
  • 打赏
  • 举报
回复
up

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧