Delphi World - Как получить имя папки pабочего стола (не чеpез registry)
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как получить имя папки pабочего стола (не чеpез registry)

Автор: Nomadic

Пpосто очень хочется поpаботать с shell functions.

В этом примере делается и это


procedure TForm1.Button1Click(Sender: TObject);

  procedure madd(s: string);
  begin
    memo1.lines.add(s);
  end;

var
  ppmalloc: imalloc;
  id: ishellfolder;
  pi: pitemidlist;
  lpname: tstrret;
begin

  if succeeded(shgetspecialfolderlocation(0, CSIDL_PROGRAMS, pi)) then
  begin
    madd('Succeeded programs location');
    if succeeded(shgetdesktopfolder(id)) then
    begin
      madd('Succeeded get desktop folder');
      if succeeded(id.getdisplaynameof(pi, 0, lpname)) then
      begin
        madd('Succeeded get display name');
        if lpname.uType = 2 then
        begin
          madd(lpname.cstr);
        end;
      end
      else
        madd('UnSucceeded get display name');
    end
    else
      madd('UnSucceeded get desktop folder');
  end
  else
    madd('UNSucceeded programs location');
end;

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования