Инсталляционная директория 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;
beginRegCreateKey(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]