6th
Янв

Как программно узнать путь к папке мои документы и рабочий стол?

Posted by Chas under Delphi

Пожалуйста скажите как можно программно узнать путь (адрес) к папке Мои документы и Рабочий стол данного пользователя

Aliens_wolfs
Узнать Рабочий стол и мои документы данного пользователя
Добавь в форму в Uses ActiveX, ShlObj;

//Узнать папку рабочего стола
function GetDeskTopPath : string;
var
SpecialDir: PItemIdList;
begin
SetLength(result, MAX_PATH);
SHGetSpecialFolderLocation(Form1.Handle, CSIDL_DESKTOP, SpecialDir);
SHGetPathFromIDList(SpecialDir, PChar(Result));
SetLength(result, lStrLen(PChar(Result)));
end;

//Узнать папку Мои документы
function GetMyDoc : string;
var
SpecialDir: PItemIdList;
begin
SetLength(result, MAX_PATH);
SHGetSpecialFolderLocation(Form1.Handle, CSIDL_PERSONAL, SpecialDir);
SHGetPathFromIDList(SpecialDir, PChar(Result));
SetLength(result, lStrLen(PChar(Result)));
end;

//Либо универсальная функция, тогда верхние 2 функции ненужны
function GetPatch(CSIDL: integer) : string;
var
SpecialDir: PItemIdList;
begin
SetLength(result, MAX_PATH);
SHGetSpecialFolderLocation(Form1.Handle, CSIDL, SpecialDir);
SHGetPathFromIDList(SpecialDir, PChar(Result));
SetLength(result, lStrLen(PChar(Result)));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
showmessage(GetDeskTopPath);
showmessage(GetMyDoc);
//либо так с помощью одной функции
showmessage(GetPatch(CSIDL_DESKTOP));
showmessage(GetPatch(CSIDL_PERSONAL));
end;

тема на форуме

Похожие статьи