Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2009, 11:25   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию Создать иконку на рабочем столе

Подскажите как создать иконку своего приложения на рабочем столе
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 14.04.2009, 11:45   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,759
По умолчанию

Код:
// Добавляем ярлык
procedure 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;
FaTaL вне форума Ответить с цитированием
Старый 14.04.2009, 12:43   #3
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

А что нельзя после компиляции левой мышью - контекстное меню и далее "Отправить на рабочий стол"?
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 14.04.2009, 15:24   #4
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Цитата:
Сообщение от DeKot Посмотреть сообщение
А что нельзя после компиляции левой мышью - контекстное меню и далее "Отправить на рабочий стол"?
А вы так делаете когда скачиваете программы?
Или мне help написать для пользователя.
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 14.04.2009, 16:09   #5
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Все просто - в вопросе
Цитата:
как создать иконку своего приложения на рабочем столе
всего лишь добавить программно.
Правильно заданный вопрос - половина ответа!
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 15.04.2009, 12:25   #6
radiohobbyt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 38
По умолчанию

http://forum.codenet.ru/showthread.php?t=22681
что дал поиск в гугле...а вообще...как setup.exe делаешь каким нитьл инсталломейкером. вроде все они могут куда надо урлычки рассовывать=) (CreateInstall Free может и прост как валенок)
radiohobbyt вне форума Ответить с цитированием
Старый 15.04.2009, 12:55   #7
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,455
По умолчанию

Я, у себя в инсталляторе прописал так, там полностью все системные папки есть.


1) В активате пишем процедуру,открывающею все системные папки, через реестр и после она вносит всё в компонент TMEMO.
Код:
uses
  Windows, SysUtils, Classes, Graphics, Controls, Forms, Buttons, StdCtrls,
  ShlObj, ActiveX, ComObj, Registry, ExtCtrls,
Код:
procedure TForm1.FormActivate(Sender: TObject);
var reg : TRegistry; ts : TStrings; i : integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.LazyWrite := false;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', false);
ts := TStringList.Create;
reg.GetValueNames(ts);
for i := 0 to ts.Count -1 do
Memo1.Lines.Add(reg.ReadString(ts.Strings[i]));
ts.Free; reg.CloseKey; reg.free; end;
2) Сама процедура создания ярлыка.
Код:
procedure CreateLink(const PathObj, PathLink, Desc, Param: string);
var SLink: IShellLink; PFile: IPersistFile; IObject: IUnknown;
begin IObject := CreateComObject(CLSID_ShellLink);
SLink := IObject as IShellLink;
PFile := IObject as IPersistFile;
with SLink do begin SetPath(PChar(PathObj)); end;
PFile.Save(PWChar(WideString(PathLink)), true); end;
3) Применение...
Код:
procedure TForm1.Button1Click(Sender: TObjects);
begin
CreateLink(paramStr(0),ExtractFilePath(Application.ExeName),Memo1.lines.strings[1]+'\Ярлык1.lnk','');
CreateLink(paramStr(0),ExtractFilePath(Application.ExeName),Memo1.lines.strings[2]+'\Ярлык2.lnk',''); DeskTop
...
CreateLink(paramStr(0),ExtractFilePath(Application.ExeName),Memo1.lines.strings[10]+'\Ярлык10.lnk','');
end;
Помог? если да, то жмите на весы с лева =)

Последний раз редактировалось uberchel; 15.04.2009 в 14:43.
uberchel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вращение 5-угольника на рабочем столе Ratte Помощь студентам 7 21.04.2008 18:41
Значки на рабочем столе Xardas Свободное общение 4 01.03.2008 20:21
Создать окно на рабочем столе AidarBik Win Api 19 09.02.2008 17:47
SpeedButton на рабочем столе ERASERROR Общие вопросы Delphi 10 22.01.2008 16:58
html на рабочем столе >AdepT< Win Api 4 28.02.2007 20:06