比如我机子上装有两个系统,C:\WINDOWS 和 D:\WINDOWS我想通过编程来判断当前使用的系统是哪个...

解决方案 »

  1.   

    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;
      

  2.   


    可能是我的问题误导了大家我的意思是比如硬盘里安装了98、2000双系统,我想把每个系统的WINDOWS目录路径找出来,和判断当前运行的是哪个系统