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