Форум: "WinAPI";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];
Внизкак создать ярлык Найти похожие ветки
← →
Antoshka (2006-04-14 19:11) [0]Господа, поможите! Хочу создать ярлык. Делаю так, как FAQ написано:
uses ShlObj, ComObj, ActiveX;
procedure CreateLink(const PathObj, PathLink, Desc, Param: string);
var
IObject: IUnknown;
SLink: IShellLink;
PFile: IPersistFile;
begin
//Компилятор ругается так: Incompatable types: ‘IUnknown’ and ‘IInterface’
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;
В чём дело? Подскажите, кто может.
← →
Palladin © (2006-04-14 19:44) [1]:) Ну кто откуда может знать зачем же ты делаешь как в FAQ написано
← →
PZ (2006-04-14 20:36) [2]Я использовал процедуру (не помню откуда позаимствовал):
procedure TForm1.SetIcon();
Var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
Directory : String;
WFileName : WideString;
MyReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
With MySLink do
begin
SetPath(PChar(FileName));
SetDescription(PChar(Description));
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
MyReg := TRegIniFile.Create(
"Software\MicroSoft\Windows\CurrentVersion\Explorer");
// Используйте следующую строчку кода для создания ярлыка
// на рабочем столе
Directory := MyReg.ReadString("Shell Folders","Desktop","");
// Используйте следующие три строчки для создания ярлыка
// в главном меню
// Directory := MyReg.ReadString("Shell Folders","Start Menu","")+
// "\Рулез!";
// CreateDir(Directory);
WFileName := Directory+"\View_BD.lnk";
MyPFile.Save(PWChar(WFileName),False);
MyReg.Free;
end; { TForm1.SetIcon }
← →
Antoshka (2006-04-14 21:24) [3]Хм, спасибо, конечно… Но проблема в том, что компилятор на первой же строчке ругается.
CreateComObject(CLSID_ShellLink) каким то боком возвращает Iinterface!
Приведением типов я ничего хорошего не добился. Может быть это как-то по другому можно сделать?
← →
kernel © (2006-04-15 17:46) [4]Так, как FAQ написано - все работает. Я сам этой функцией пользовался часто и всегда эффект был (по крайней мере у меня) положительным. Смотри ошибки в другом месте...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c