Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 323

Раздел: Delphi » Прочее
/ вопрос открыт /

Доброго времени суток, уважаемые эксперты! Для того, чтобы сделать ярлык программно использую вот эту процедуру:

procedure CreateLink(const PathObj, PathLink, Desc, Param, IconFile: string; IconNumber: Integer);
var
  IObject: IUnknown;  
  SLink: IShellLink;
  PFile: IPersistFile;
begin
  IObject := CreateComObject(CLSID_ShellLink);
  SLink := IObject as IShellLink;
  PFile := IObject as IPersistFile;
  with SLink do
  begin
    SetArguments(PChar(Param));
    SetDescription(PChar(Desc));
    SetPath(PChar(PathObj));
    SetIconLocation( PChar( IconFile ), IconNumber);
  end;
  PFile.Save(PWChar(WideString(PathLink)), FALSE);
end;

В программу (свою) добавляю иконки с помощью Restorator (так проще). Так вот, когда использую свою функцию, иконки почему-то отображаются как стандартные системные (прямоугольные) на ярлыке. А не те которые указываю:

CreateLink(Application.ExeName, DocAndSet + '\' + UserN + '\Рабочий стол\Моя прога.lnk', 'Тут всплывающая инфа', 'тут
параметр ком строки', Application.ExeName, 2{последняя цифра указывает на номер иконки});

Подскажите пожалуйста что не так?

eclipse Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: eclipse (статус: Посетитель)
Вопрос отправлен: 26 мая 2011, 19:51
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 28 мая 2011, 00:44; участников в обсуждении: 2.
DNK

DNK (статус: Студент), 27 мая 2011, 22:33 [#1]:

Попробуй в качестве номера иконки указать не 2, а 0.
"Digital Networked Knight"
eclipse

eclipse (статус: Посетитель), 27 мая 2011, 22:53 [#2]:

.... :) ... я пробовал... отобразится иконка которая была по умолчанию (в делфях иконка в виде семёрки и земного шара), а если загрузить иконку, то отобразится она... ну надеюсь нормально объяснил. Пробовал загрузить иконки как ресурс в прогу (через brcc32 и т.д. ....), нифига!
DNK

DNK (статус: Студент), 28 мая 2011, 00:28 [#3]:

А не проще поставить свою иконку по-умалчиванию.
Меню -> Project -> Options -> вкладка Application -> кнопка Load Icon
"Digital Networked Knight"
eclipse

eclipse (статус: Посетитель), 28 мая 2011, 00:44 [#4]:

Блин... не дошлоо! если выставить 0 в качестве идентификатора иконки, тогда - да! (как Вы привели пример с установкой своей иконки), но я хочу загрузить в программу несколько иконок... и создать ярлыыки на рабочем столе к одной и той же программе (просто программа будет запускаться с разными параметрами командной строки и поэтому будет несколько иконок) и они должны быть с разными иконками.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:53
Выполнено за 0.03 сек.