![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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