Разное
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Получить изображение формы в виде Bitmap и поместить его в буфер обмена
Категория: Компоненты
Категория: Компоненты
Корректное колесико мыши
Категория: Приложение
Категория: Приложение
Удалить лишние символы из строки
Категория: Текст и строки
Категория: Текст и строки
Узнать запущен ли сервис FireBird
Категория: Интернет и Сети
Категория: Интернет и Сети
Добавление текстовой информации в .ехе-файл и чтение ее
Категория: Файловая система
Категория: Файловая система
Как соединить несколько файлов в один
Категория: Файловая система
Категория: Файловая система
Округление времени до 5 мин
Категория: Базы данных
Категория: Базы данных
Сохранить документ Word как RTF на DELPHI
Категория: Файловая система
Категория: Файловая система
Компонент PopupMenu
Категория: Компоненты
Категория: Компоненты
Округление в меньшую сторону
Категория: Математика
Категория: Математика
Delphi - База Знаний: Как создать ярлык
function CreateLink(FileName, DestDirectory: string; OverwriteExisting,
AddNumberIfExists: Boolean): string;
var
MyObject: IUnknown;
MySLink: IShellLink;
MyPFile: IPersistFile;
WFileName: WideString;
X: INTEGER;
begin
//Изначально RESULT = ''
Result := '';
//Если фиайла, для которого создаётся ярлык не существует, или же не
// существует директории, где должен быть создан ярлык файла, то EXIT
if (FileExists(FileName) = FALSE) or (DirectoryExists(DestDirectory) = FALSE)
then
exit;
MyObject := CreateComObject(CLSID_SHELLLINK);
MyPFile := MyObject as IPersistFile;
MySLink := MyObject as IShellLink;
with MySLink do
begin
SetArguments('');
SetPath(PChar(FileName));
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
//Гарантирование проставление завершающего '\' в пути директории
//расположения создаваемого ярлыка
if DestDirectory[length(DestDirectory)] <> '\' then
DestDirectory := DestDirectory + '\';
// Первичное определене будующего имени ярлыка
WFileName := DestDirectory + ExtractFileNameEx(FileName, FALSE) + '.lnk';
//Если ярлык с таким именем уже существует, то
if (FileExists(WFileName)) then
begin
// Если не надо переписывать существующий ярлык, а надо добавить
// порядковый номер существования к имени создаваемого ярлыка, например
// blobby1.lnk, blobby2.lnk
if (OverwriteExisting = FALSE) and (AddNumberIfExists = TRUE) then
begin
// Определяем какой именно порядковый номер надо добавить к
// имени ярлыка
X := 0;
repeat
X := X + 1;
WFileName := DestDirectory + ExtractFileNameEx(FileName, FALSE)
+ IntToStr(X) + '.lnk';
until FileExists(WFileName) = FALSE;
// И сохраняем ярлык
MyPFile.Save(PWChar(WFileName), FALSE);
Result := WFileName;
end;
//Если надо переписывать существующий ярлык
if OverwriteExisting = TRUE then
begin
//..., то переписываем его :)
MyPFile.Save(PWChar(WFileName), FALSE);
Result := WFileName;
end;
end
else
begin
//В случае, если ярлыка с подобным имененм ещё нет в папке
//назначения, то создаём ярлык
MyPFile.Save(PWChar(WFileName), FALSE);
Result := WFileName;
end;
end;