Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Program Shortcut ? [D6, Win2k]


NetKnight ©   (2002-12-04 16:06:00) 

Кто-нить подскажет как делать фичу установки ярлыка на десктоп в дельфях ?


Viktor Kushnir   (2003-02-21 10:07:00) [1]

Я ярлыки так содавал, под D4 вроде работало.

procedure TConfigForm.CreateLink(const PathObj, PathLink, Desc, Param: string);
var
IObject: IUnknown;
SLink: IShellLink;
PFile: IPersistFile;
begin
CreateDirs(PathLink);
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)), True);
end;


Nicky   (2003-02-20 13:30:00) [2]


> MyObject := CreateComObject(CLSID_ShellLink);

А у меня здесь вываливается Runtime error 217. Чо делать то?


P@SHA   (2003-01-31 22:43:00) [3]


...
uses ..., registry;
...
Procedure TForm1.BitBtn1click(Object: TSender);
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
Directory, FileName : String;
WFileName : WideString;
MyReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
FileName := "NOTEPAD.EXE";
with MySLink do begin
SetArguments("C:\AUTOEXEC.BAT");
SetPath(PChar(FileName));
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
MyReg := TRegIniFile.Create(
"Software\MicroSoft\Windows\CurrentVersion\Explorer");

// Используй следующую строчку кода для создания ярлыка на рабочем столе

Directory := MyReg.ReadString("Shell Folders","Desktop","");


WFileName := Directory+"\FooBar.lnk";
MyPFile.Save(PWChar(WFileName),False);
MyReg.Free;

end;


Игорь Шевченко   (2002-12-04 17:37:00) [4]

IShellLink


Наверх

Титульная страница Поиск, карта сайта Написать письмо