CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

怎么识别操作系统??

楼主xjpiking(king)2002-04-02 14:23:29 在 Delphi / VCL组件开发及应用 提问

怎么识别操作系统??? 问题点数:20、回复次数:4Top

1 楼xjpiking(king)回复于 2002-04-02 14:33:36 得分 0

没人会吗???Top

2 楼lintoms(咕噜)回复于 2002-04-02 14:50:25 得分 10

{  
  Value                                                 Platform  
  VER_PLATFORM_WIN32s Win32s   on   Windows   3.1.    
  VER_PLATFORM_WIN32_WINDOWS Win32   on   Windows   95.  
  VER_PLATFORM_WIN32_NT Win32   on   Windows   NT.  
  }  
  (*判断是否是NT*)  
  function   IsNT:   Boolean   ;  
  var  
      OSVersionInfo:   TOSVersionInfo;  
  begin  
      OSVersionInfo.dwOSVersionInfoSize   :=   SizeOf(OSVersionInfo);  
      GetVersionEx(OSVersionInfo);  
      if   OSVersionInfo.dwPlatformId   =   VER_PLATFORM_WIN32_NT   then  
          Result   :=   True  
      else  
          Result   :=   False;  
  end;Top

3 楼quark(夸克)回复于 2002-04-02 14:56:20 得分 10

//==============================================================================  
  //获得操作系统版本号************************************************************  
  //==============================================================================  
  function   GetWindowsVersion(var   Major,   Minor:   integer):   string;  
  var  
      {$IFDEF   WIN32}  
      lpOS,   lpOS2:   POsVersionInfo;  
      OSVerProc:   function(lpOs:   pointer):   BOOL;   stdcall;  
      OSVerHandle:   THandle;  
      {$ELSE}  
      lp:   longint;  
      {$ENDIF}  
  begin  
      {$IFDEF   WIN32}  
      GetMem(lpOS,   SizeOf(TOsVersionInfo));  
      lpOs^.dwOSVersionInfoSize   :=   SizeOf(TOsVersionInfo);  
      //============================================================================  
      //调用DLL例程*****************************************************************  
      //============================================================================  
      OSVerHandle   :=   LoadLibrary('kernel32');  
      if   OSVerHandle<=0  
      then   raise   Exception.Create('动态链接库kernel32加载失败,错误代码:'+IntToStr(GetLastError))  
      else   @OSVerProc   :=   GetProcAddress(OSVerHandle,   'GetVersionExA');  
      if   not   Assigned(OSVerProc)  
      then   raise   Exception.Create('动态链接库kernel32函数GetVersionExA加载失败,错误代码:'+IntToStr(GetLastError))  
      else   while   not   OSVerProc(lpOS)   do  
                begin  
                    GetMem(lpos2,   lpos^.dwOSVersionInfoSize   +   1);  
                    lpOs2^.dwOSVersionInfoSize   :=   lpOs^.dwOSVersionInfoSize   +   1;  
                    FreeMem(lpOs,   lpOs^.dwOSVersionInfoSize);  
                    lpOS   :=   lpOs2;  
                end;  
      Major   :=   lpOs^.dwMajorVersion;  
      Minor   :=   lpOs^.dwMinorVersion;  
      FreeLibrary(OSVerHandle);  
      FreeMem(lpOs,   lpOs^.dwOSVersionInfoSize);  
      {$ELSE}  
      lp   :=   GetVersion;  
      Major   :=   LoByte(LoWord(lp));  
      Minor   :=   HiByte(LoWord(lp));  
      {$ENDIF}  
      case   Win32Platform   of  
          VER_PLATFORM_WIN32_WINDOWS:   Result   :=   'Win9x';  
          VER_PLATFORM_WIN32_NT:             Result   :=   'WinNT';  
      end;  
  end;  
   
  Top

4 楼xjpiking(king)回复于 2002-04-02 16:06:31 得分 0

第二种能不能说明白点!!Top

相关问题

  • 《操作系统》怎么学?
  • WinMe上不能全新安装Win2000 server,提示不能识别当前的操作系统,怎么办?
  • >=4个操作系统该怎么办???
  • 怎么判断操作系统
  • 怎么进入dos操作系统
  • 英文版操作系统如何识别中文?
  • 我从新安装了一个操作系统,如何识别以前另外的操作系统??
  • 如何识别操作系统是中文版还是英文版?????????????????????????????
  • 怎样识别95,98,Me,NT,2000,XP这几种操作系统??并实现休眠功能??
  • 有什么方法,可以让PB识别当前操作系统

关键词

  • win32
  • 操作系统
  • nt
  • lpos
  • tosversioninfo
  • osversioninfo
  • platform
  • ver
  • sizeof
  • var

得分解答快速导航

  • 帖主:xjpiking
  • lintoms
  • quark

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo