![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно узнать %system root%???? [D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]
Killus © (2005-01-27 17:04:00)Собственно тема интересует!
Killus (2005-01-27 17:20:00) [1]Всем огромное спасибо! Тема закрыта!
Юрий Зотов (2005-01-27 17:10:00) [2]GetWindowsDirectory
Amoeba (2005-01-27 17:08:00) [3]GetSystemDirectory
Developerr (2005-01-27 17:07:00) [4]{ **** UBPFD *********** by delphibase.endimus.com ****
>> Как найти системные каталоги...
Ищем системные каталоги через реестр. Функция использует только один модуль - Windows.pas. Полезно для создателей программ на чистом API.
Зависимости: Windows
Автор: LENIN INC, fuck2all@ukr.net, Kiev
Copyright: (C) 2003 by LENIN INC, http://lenininc.narod.ru
Дата: 22 февраля 2003 г.
***************************************************** }
//Находим системные каталоги
{ Параметры ShellPath следующие:
Desktop - C:\WINDOWS\Рабочий стол
Templates - C:\WINDOWS\ShellNew
AppData - C:\WINDOWS\Application Data
Start Menu - C:\WINDOWS\Главное меню
Programs - C:\WINDOWS\Главное меню\Программы
Startup - C:\WINDOWS\Главное меню\Программы\Автозагрузка
Fonts - C:\WINDOWS\Fonts
SendTo - C:\WINDOWS\SendTo
Recent - C:\WINDOWS\Recent
Favorites - C:\WINDOWS\Избранное
Cache - C:\WINDOWS\Temporary Internet Files
Cookies - C:\WINDOWS\Cookies
History - C:\WINDOWS\History
NetHood - C:\WINDOWS\NetHood
Personal - C:\Мои документы
PrintHood - C:\WINDOWS\PrintHood
Local AppData - C:\WINDOWS\Local Settings\Application Data
My Pictures - C:\Мои документы\Мои рисунки
Administrative Tools - C:\WINDOWS\Главное меню\Программы\Администрирование }
function ShellDir(ShellPath: String): string;
var
Handle: HKEY;
DataType, DataSize: DWORD;
begin
if RegOpenKeyEx(HKEY_CURRENT_USER, PChar('SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'),
0, KEY_QUERY_VALUE, Handle) = ERROR_SUCCESS then
if RegQueryValueEx(Handle, PChar(ShellPath), nil, @DataType, nil, @DataSize) = ERROR_SUCCESS then
begin
SetString(Result, nil, DataSize-1);
RegQueryValueEx(Handle, PChar(ShellPath), nil, @DataType, PByte(@Result[1]), @DataSize);
//Если нет косой черты - добавляем
if (Result <> '') and (Result[Length(Result)] <> '\') then Result := Result + '\';
end else Result := '';
RegCloseKey(Handle);
end;