在DELPHI编程中获取操作系统信息

Author: 季昭君 Date: 1999年 第50期 13版


  我们日常的编程中,常常会去判断用户所使用的操作系统是什么?为什么要这么做,因为:为了使应用程序适应不同的操作系统,能让它运行得更好!如在运行某个应用程序前,应先判断用户所使用的是WIN95/98,还是WIN NT。虽然这两个都是常用的操作系统,但在某些方面是完全不同的,在WIN95/98上运行很好的程序不一定在WIN NT上也运行得很好,所以不同的操作系统应有不同的程序代码以适应不同的需要,也为了使程序运行得更好更稳定。
  那怎样才能知道用户使用的操作系统是什么呢?我们可以利用API函数来解决,方法如下:
  首先做准备工作,新建工程,在FORM1上放上一个LABEL1(CAPTION为空)与一个BUTTON1(CAPTION为获取操作系统信息),其他属性不变,然后输入以下程序代码:
  unit GETVER;
  interface
  uses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls;
  type
  TForm1 = class(TForm)
  Button1: TButton;
  Label1: TLabel;
  procedure Button1Click(Sender: TObject);
  private{ Private declarations }
  public{ Public declarations }
  end;
  var  Form1: TForm1;
  implementation {$R *.DFM}
  procedure TForm1.Button1Click(Sender: TObject);  //判断用户操作系统。
  VAR
  GETVER:OSVERSIONINFO;  //声明所需变量,具体内容请参考API函数说明文件。
  RET:LONGBOOL;
  begin
  GETVER.DWOSVERSIONINFOSIZE:=148;
  RET:=GETVERSIONEX(GETVER); //调用API函数判断开始
  IF GETVER.DWPLATFORMID=VER_PLATFORM_WIN32_WINDOWS THEN 
  LABEL1.CAPTION:=′您正使用的操作系统是:WINDOWS95/98′;
  IF GETVER.DWPLATFORMID=VER_PLATFORM_WIN32_NT THEN
  LABEL1.CAPTION:=′您正使用的操作系统是:WINDOWS NT′;
  END;
  END.
  现在请运行一下(按下F9),怎么样!是否成功?
  不清楚的地方请查看相应的API函数说明,笔者就不再赘述了!
  注:以上程序在中文WINDOWS98,DELPHI4.0 C/S版中调试通过。