Узнаем местоположение каталога Windows и специальных папок в Delphi

Получаем путь к каталогу Windows

{$IFNDEF WIN32}
const MAX_PATH = 144; 
{$ENDIF} 
  
procedure TForm1.Button1Click(Sender: TObject); 
var
  a : Array[0..MAX_PATH] of char; 
begin
  GetWindowsDirectory(a, sizeof(a)); 
  ShowMessage(StrPas(a)); 
  GetSystemDirectory(a, sizeof(a)); 
  ShowMessage(StrPas(a)); 
end;

Получаем путь к специальным папкам

var
  FolderPath :string;
begin
  Registry := TRegistry.Create;
  try
    Registry.RootKey := HKey_Current_User;
    Registry.OpenKey('Software\Microsoft\Windows\' + 'CurrentVersion\Explorer\Shell Folders', False);
    FolderName := Registry.ReadString('StartUp'); 
    {Cache, Cookies, Desktop, Favorites, 
    Fonts, Personal, Programs, SendTo, Start Menu, Startp}
  finally
    Registry.Free;
end;

Получаем полный список каталогов по умолчанию

С помощью следующего кода получаем список каталогов по умолчанию (Favorites, Desktop, Programs, Fonts, SendTo, Start, Menu, Templates, Startup, Recent and NetHood) и заносим его в Memo.

uses Registry; 
  
procedure TForm1.Button1Click(Sender: TObject); 
var
  reg : TRegistry; 
  ts : TStrings; 
  i : integer; 
begin
  reg := TRegistry.Create; 
  reg.RootKey := HKEY_CURRENT_USER; 
  reg.LazyWrite := false; 
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',false); 
  ts := TStringList.Create; 
  reg.GetValueNames(ts); 
  for i := 0 to ts.Count -1 do
  begin
    Memo1.Lines.Add(ts.Strings[i]+' = ' + reg.ReadString(ts.Strings[i])); 
  end; 
  ts.Free; 
  reg.CloseKey; 
  reg.free; 
end; 
Kwork.ru - услуги фрилансеров от 500 руб.
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (10 оценок, среднее: 5,00 из 5)
Загрузка...
Добавить комментарий