Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать ярлык к приложению в Windows 7, Delphi 2007 
V
    Опции темы
Angel_19
Дата 15.11.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Пробовал разные варианты создания ярлыка, в том числе тот, что описан в Delphi Russian Knowledge Base from Vit Version 3.0.
Также тут есть модуль:
http://forum.vingrad.ru/topic-190861.html (в этом модуле возникает ошибка в constructor TVRSIShortCut.Create)

Найденые варианты либо отрабатывают нормально, но файл ярлыка не создается, либо вываливаются с ошибкой.
Есть рабочие примеры?
PM ICQ   Вверх
uwannadie
Дата 15.11.2009, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 5.6.2009
Где: Крым, Керчь

Репутация: нет
Всего: 1



Код

Uses ShlObj, ActiveX;

procedure CreateDesktopIcon(ilname, WorkDir, desc, iPath : string);
var
  IObj : IUnknown;
  SLink : IShellLink;
  PFile : IPersistFile;
  desk : string;
  lnkpath : WideString;
begin
  if(ilname<>'') then 
  begin
    SetLength(desk, MAX_PATH+1);
    SHGetSpecialFolderPath(0, PAnsiChar(desk),CSIDL_DESKTOPDIRECTORY,False);
    lnkpath:= PChar(desk)+'\'+ilname+'.lnk';
    IObj := CreateComObject(CLSID_ShellLink);
    SLink := IObj as IShellLink;
    PFile := IObj as IPersistFile;
    with SLink do
    begin
      SetDescription(PChar(desc));
      SetPath(PChar(Application.ExeName));
      SetWorkingDirectory(PAnsiChar(WorkDir));
      //SetIconLocation(PAnsiChar(iPath),0); если раскоментировать эту строчку, то значек ярлыка будет браться из приложения указанного в параметре iPath
    end;
    PFile.Save(PWChar(WideString(lnkpath)), FALSE);
  end;
end;

параметры:
Код

ilName - Названия ярлыка на рабочем столе
WorkDir - рабочий каталог программы
Desc - описание ярлыка
iPath - путь для иконки ярлыка

код взят из программы L3Updater. автор _Untitled (http://postpacific.com)

Это сообщение отредактировал(а) uwannadie - 15.11.2009, 21:50
--------------------
PM MAIL   Вверх
CodeMonkey
Дата 16.11.2009, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89



Цитата(Angel_19 @  15.11.2009,  21:01 Найти цитируемый пост)
Найденые варианты либо отрабатывают нормально, но файл ярлыка не создается, либо вываливаются с ошибкой.

А где и на что пытаетесь создать ярлык?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Angel_19
Дата 16.11.2009, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



uwannadie - благодарю, работает!

Цитата

А где и на что пытаетесь создать ярлык?

В папке Автозагрузка в меню Пуск.
PM ICQ   Вверх
CodeMonkey
Дата 16.11.2009, 12:19 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89



Вообще-то я имел ввиду, не пытаетесь ли вы создать ярлык в защищённой от записи папке. 

Папок Автозагрузка на компе, вообще-то, много: по одной на каждого пользователя, да ещё одна общепользовательская и одна шаблонная. Не в каждую такую папку у вас могут быть права для записи.



--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Angel_19
Дата 17.11.2009, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Срасибо за внимание!
Доступ для записи был...
PM ICQ   Вверх
v258
Дата 4.12.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 19.7.2005
Где: Краснодарский кра й

Репутация: нет
Всего: 2



Цитата(Angel_19 @  16.11.2009,  12:12 Найти цитируемый пост)
В папке Автозагрузка в меню Пуск

А путь к папке как определялся? Да и вообще, не помешало бы привести свой код, который не работает
 
Цитата(Angel_19 @  17.11.2009,  08:43 Найти цитируемый пост)
Доступ для записи был...

А вот это в Win7 вовсе не очевидно  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0637 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.