Форум: "Основная";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];
ВнизКак создать ярлык в Дельфи 2009? Найти похожие ветки
← →
andreil (2009-06-05 22:51) [0]Есть у меня функция следующего вида:
uses shlobj, ShellAPI, ActiveX;
......
function CreateLinkDesc(const FileName, Arguments, WorkDir, IconFile: String;
IconNumber: integer; LinkName: String;
Description: String): Boolean;
var
SLink : IShellLinkA;
PFile : IPersistFile;
WFileName : WideString;
begin
Result := FALSE;
CoInitialize( nil );
if CoCreateInstance( TGUID( CLSID_ShellLink ), nil, CLSCTX_INPROC_SERVER,
TGUID( IID_IShellLinkA ), SLink ) <> S_OK then Exit;
if SLink.QueryInterface( System.TGUID( IID_IPersistFile ), PFile ) <> S_OK then Exit;
SLink.SetArguments(PAnsiChar(Arguments));
SLink.SetPath(PAnsiChar(FileName));
SLink.SetWorkingDirectory(PAnsiChar(WorkDir));
SLink.SetDescription(PAnsiChar(Description));
SLink.SetIconLocation(PAnsiChar(IconFile),IconNumber);
if not DirectoryExists(ExtractFilePath(LinkName)) then
CreateDir( ExtractFilePath(LinkName) );
WFileName := LinkName;
PFile.Save(PWideChar(LinkName),False);
Result := TRUE;
end;
Код работает правильно, но вот ярлык создается криво из-за несовместимости типов AnsiiChar и WideChar :(
Срочно нужна помощь, а то в программе только это и неработает нормально ;)
← →
andreil (2009-06-05 23:31) [1]Вопрос закрыт - уже помогли ;)
← →
Eraser © (2009-06-06 18:32) [2]
IObject := CreateComObject(CLSID_ShellLink);
ISLink := IObject as IShellLink;
IPFile := IObject as IPersistFile;
ISLink.SetDescription("Cool soft");
ISLink.SetPath(PChar(Application.ExeName));
ISLink.SetArguments(PChar(sArgs));
ISLink.SetShowCmd(SW_SHOW);
IPFile.Save(StringToOleStr(ShortCutPath), True);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c