Идёт загрузка страницы...

htp://aptem.net.ru





Инсталляционная директория Win95


    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]