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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Процедура автоматического создания иконки 
V
    Опции темы
jaAlex
Дата 5.7.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

...
Uses ShlObj, ComObj, ActiveX;
...
procedure TForm1.CreateLink(const PathObj, PathLink, Desc, Param: string);
  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));
    end;
    PFile.Save(PWChar(WideString(PathLink)), FALSE);
  end;

Вот текст процедуры автоматического создания иконки при запуске программы на рабочем столе. По идее, она должна работать. Но не работает!!! Подскажите пожалуйста, что здесь не так. Заранее очень благодарен за помощь.


 
PM MAIL   Вверх
Alexeis
Дата 5.7.2006, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



jaAlex, наверное не иконки, а ярлыка? 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
jaAlex
Дата 5.7.2006, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да, ярлыка. Сижу третьи сутки за компом, послезавтра работу сдавать начальству, вот шарики за ролики и закатились! Уже вообще ничего не соображаю, помогите плз!!! 
PM MAIL   Вверх
Alexeis
Дата 5.7.2006, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Вот пример использования
Код

  CreateLink(Application.ExeName,
              ExtractFilePath(Application.ExeName)
              +Application.Title + '.lnk', '', '');


Добавлено @ 00:28 
создает ярлык там где exe

Добавлено @ 00:28 
p.s. у меня создает 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
jaAlex
Дата 5.7.2006, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А как можно создать ярлык на рабочем столе при запуске программы? Моя процедура приведена в качестве примера в DRKB. Но не работает!!! Почему? Текст процедуры по-идее должен работать. Подскажите пожалуйста, как вызвать эту процедуру из FormCreate. Должна она работать! Да и по заданию начальства ярлык должен автоматически создаваться при запуске программы. Подскажите хоть что - нибудь! 
PM MAIL   Вверх
Alexeis
Дата 5.7.2006, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



А вот и на рабочем столе
Код

uses ShlObj, ComObj, ActiveX, Registry;

procedure TForm1.Button1Click(Sender: TObject);
const
  SHELL_FOLDERS_ROOT = 'Software\MicroSoft\Windows\CurrentVersion\Explorer';
var
  Reg: TRegIniFile;

begin
  Reg := TRegIniFile.Create(SHELL_FOLDERS_ROOT);

   CreateLink(Application.ExeName,
              Reg.ReadString('Shell Folders', 'Desktop', '')+ '\'
              + Application.Title + '.lnk', '', '');
   Reg.Free;
end;
 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
jaAlex
Дата 5.7.2006, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



alexeis1, спасибо огромное! Все работает! Мог бы репутации добавить - добавил бы обязательно. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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