function FindWindowsDir : string;
var
pWindowsDir : array [0..255] of Char;
sWindowsDir : string;
begin
// GetWindowsDirectory(LPTSTR,UINT);
// LPTSTR lpBuffer,    // адрес буфера для директории Windows
// UINT uSize          // размер буфера директории
GetWindowsDirectory (pWindowsDir, 255); sWindowsDir := StrPas (pWindowsDir); Result := sWindowsDir ; end;
Дополнение

Пришло письмо от читателя:

Пример процедуры достаточно часто не срабатывает, ну а если относительно меня,- вообще не работает. Предлагаю использовать следующий код (естественно, чтение из реестра)

    function GetWindowsFolder:string;
var
TR:TRegIniFile; HK: HKEY; begin
RegCreateKey(HKEY_LOCAL_MACHINE,'Software\Microsoft\Windows',HK); Reg:=TRegIniFile.Create(''); Reg.RootKey:=HK; GetWinVersion:=Reg.ReadString('CurrentVersion','SystemRoot',''); Reg.Free;

end;
Прислал Igor Popov.
E-mail to: igp@ukrpost.net.

Дополнение

Пришло письмо от читателя:

Я не знаю почему у некоторых не работает GetWindowsDir, ведь это задокументированная MSW -функция, которая есть и в Win95 и в 98. Может помогут эти небольщие ихменения?

    function FindWindowsDir : string;
var
pWindowsDir : array [0..MAX_PATH] of Char;
sWindowsDir : string;
begin
// GetWindowsDirectory(LPTSTR,UINT);
// LPTSTR lpBuffer,    // адрес буфера для директории Windows
// UINT uSize          // размер буфера директории
GetWindowsDirectory (@pWindowsDir, MAX_PATH);
sWindowsDir := StrPas (pWindowsDir);
Result := sWindowsDir ;
end;
Этот код работает на ВСЕХ машинах, на которых была запущенна моя прога.

Subfire [000222]