|
Вопрос # 5 323/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты! Для того, чтобы сделать ярлык программно использую вот эту процедуру:
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 (статус: Посетитель)
Вопрос отправлен: 26 мая 2011, 19:51
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 28 мая 2011, 00:44; участников в обсуждении: 2.
|
DNK (статус: Студент), 27 мая 2011, 22:33 [#1]:
Попробуй в качестве номера иконки указать не 2, а 0.
"Digital Networked Knight"
|
|
eclipse (статус: Посетитель), 27 мая 2011, 22:53 [#2]:
.... ... я пробовал... отобразится иконка которая была по умолчанию (в делфях иконка в виде семёрки и земного шара), а если загрузить иконку, то отобразится она... ну надеюсь нормально объяснил. Пробовал загрузить иконки как ресурс в прогу (через brcc32 и т.д. ....), нифига!
|
|
DNK (статус: Студент), 28 мая 2011, 00:28 [#3]:
А не проще поставить свою иконку по-умалчиванию.
Меню -> Project -> Options -> вкладка Application -> кнопка Load Icon
"Digital Networked Knight"
|
|
eclipse (статус: Посетитель), 28 мая 2011, 00:44 [#4]:
Блин... не дошлоо! если выставить 0 в качестве идентификатора иконки, тогда - да! (как Вы привели пример с установкой своей иконки), но я хочу загрузить в программу несколько иконок... и создать ярлыыки на рабочем столе к одной и той же программе (просто программа будет запускаться с разными параметрами командной строки и поэтому будет несколько иконок) и они должны быть с разными иконками.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|