Вниз
Скачать: CL | DM;

Как создать ярлык в Дельфи 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.006 c
15-1262443101
ttt_tkn
2010-01-02 17:38
2010.03.21
FireBird - Windows 7


1-1243255012
TStas
2009-05-25 16:36
2010.03.21
Как удалить файл в корзину?


2-1263977765
Неважно
2010-01-20 11:56
2010.03.21
CriticalSection


11-1214300690
Valera
2008-06-24 13:44
2010.03.21
Замена системных модулей для Delphi7.


2-1263676255
Pavel
2010-01-17 00:10
2010.03.21
TIdHTTPServer в Delphi 2010




   Наверх