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

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

Ярлык на рабочем столе [D6, WinXP]


DarkMan ©   (2004-08-05 07:22:00) 

Есть програмка которая создаёт новое сетевое поключение и нужно чтобы данное соединение "ярлык" появился на рабочем столе.
Может кто что то подобное делал, в каком так сказать направлении искать?


Hensin   (2004-09-09 16:18:00) [1]

Пиплы, тут все грейт, но Делфи пишет шо IPersistFile неизвестный тип, это к чему???


DarkMan   (2004-08-09 08:08:00) [2]

Как ярлык какого либо файла и так понятно как создать, но как создать ярлык на рабочем столе какого либо сетевого подключения.
Т.Е. программа создает новое соединение через модем например (это в XP в панель управления/Сетевые подключения/Мастер нов. подкл., в конце работы данного мастера он спрашивает создать или нет ярлык на рабочем столе)  и как мне создать ярлык программно.
Написано что нужно передать PIDL этого объекта, но в итоге получается ссылна не на тот объект.


Кириешки   (2004-08-05 07:36:00) [3]

Делал, почти такое же, а ярлыки делать так

Function CreateShortcut(const CmdLine, Args, WorkDir, LinkFile: string):
IPersistFile;
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
WideFile : WideString;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
with MySLink do
begin
SetPath(PChar(CmdLine));
SetArguments(PChar(Args));
SetWorkingDirectory(PChar(WorkDir));
end;
WideFile := LinkFile;
MyPFile.Save(PWChar(WideFile), False);
Result := MyPFile;
end;
procedure CreateShortcuts;
var Directory, ExecDir: String;
MyReg: TRegIniFile;
begin
MyReg := TRegIniFile.Create(
'Software\MicroSoft\Windows\CurrentVersion\Explorer');
ExecDir := ExtractFilePath(ParamStr(0));
Directory := MyReg.ReadString('Shell Folders', 'Programs', '') + '\' +
ProgramMenu;
CreateDir(Directory);
MyReg.Free;
CreateShortcut(ExecDir + 'Autorun.exe', '', ExecDir,
Directory + '\Demonstration.lnk');
CreateShortcut(ExecDir + 'Readme.txt', '', ExecDir,
Directory + '\Installation notes.lnk');
CreateShortcut(ExecDir + 'WinSys\ivi_nt95.exe', '', ExecDir,
Directory + '\Install Intel Video Interactive.lnk');
end;

Надеюсь все понятно будет.


Наверх

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