Как получить имя папки 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;





Похожие по теме исходники

Механизм вибростола

Registry Checker

Registry Date Time

Registry Auto Path

 

Registry Cleaner

Registry AutoLoad