var windowsbuf:array[0..255]of char;Flags,i:integer;
begin
 for i:=0 to 255 do
 windowsbuf[i]:=' ';
 getwindowsdirectory(windowsbuf,256);
 getsystemdirectory(windowsbuf,256);
end;

解决方案 »

  1.   

    UINT GetWindowsDirectory(    LPTSTR lpBuffer, // address of buffer for Windows directory 
        UINT uSize  // size of directory buffer 
       );
     ParameterslpBufferPoints to the buffer to receive the null-terminated string containing the path. This path does not end with a backslash unless the Windows directory is the root directory. For example, if the Windows directory is named WINDOWS on drive C, the path of the Windows directory retrieved by this function is C:\WINDOWS. If Windows was installed in the root directory of drive C, the path retrieved is C:\. uSizeSpecifies the maximum size, in characters, of the buffer specified by the lpBuffer parameter. This value should be set to at least MAX_PATH to allow sufficient room in the buffer for the path.  Return ValuesIf the function succeeds, the return value is the length, in characters, of the string copied to the buffer, not including the terminating null character. 
    If the length is greater than the size of the buffer, the return value is the size of the buffer required to hold the path. 
    If the function fails, the return value is zero. To get extended error information, call GetLastError.