Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как программно узнать %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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо