Последние записи
- Нужен ли сайт разработчику?
- Обсуждаем технологию I2P
- Как запустить программу указанную в Edit.Text
- Скачать файл с использованием потока
- Поиск слова в Memo
- Распаковщик формата .img из GTA San Andreas
- Подсчет количества повторяющихся букв в файле
- Простейший скрипт загрузки картинки с помощью php
- Рассылка. Выпуск 154
- Получение картинки с веб-камеры
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;

