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