如何获得系统目录的名字呢?比如我做一个软件放在WIN2000下获得系统目录c:\winnt\,我放在98或者XP下获得系统目录为c:\windows.那么我怎么获得?我记的好象DELPHI写一句话就可以了...

解决方案 »

  1.   

    var
     DirCur:    string; //当前目录
     DirSys:    string; //系统目录 system/system32
     DirWin:    string; //windows目录
     DirTmp:    string; //临时文件目录
     pcCurDirectory     : PChar; //存储路径名的字符串
     dwCDSize           : Cardinal; //缓冲区最大长度
     pcSystemDirectory  : PChar;
     dwSDSize           : Cardinal;
     pcWindowsDirectory : PChar;
     dwWDSize           : Cardinal;
     pcTmpDirectory     : PChar;
     dwTDSize           : Cardinal;
    begin
     dwCDSize := MAX_PATH + 1;
     dwSDSize := MAX_PATH + 1;
     dwWDSize := MAX_PATH + 1;
     dwTDSize := MAX_PATH + 1;
     GetMem( pcCurDirectory, dwCDSize );
     GetMem( pcSystemDirectory, dwSDSize );
     GetMem( pcWindowsDirectory, dwWDSize );
     GetMem( pcTmpDirectory, dwTDSize );
     //获取各路径名
     try
      if GetCurrentDirectory(dwCDSize,pcCurDirectory)>0 then
       DirCur := pcCurDirectory;
     finally
      FreeMem( pcCurDirectory );
     end; // try try
      if Windows.GetSystemDirectory( pcSystemDirectory, dwSDSize ) <> 0 then
       DirSys := pcSystemDirectory;
     finally
      FreeMem( pcSystemDirectory );
     end; try
      if Windows.GetWindowsDirectory( pcWindowsDirectory, dwWDSize ) <> 0 then
       DirWin := pcWindowsDirectory;
     finally
      FreeMem( pcWindowsDirectory );
     end; try
      if GetTempPath( dwTDSize, pcTmpDirectory ) <> 0 then
       DirTmp := StrPas( pcTmpDirectory )
      else DirTmp := '';
     finally
      FreeMem( pcTmpDirectory );
     end;
    end;