Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.21;
Скачать: 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 вся ветка

Текущий архив: 2010.03.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
15-1262207000
Kerk
2009-12-31 00:03
2010.03.21
Регэксп


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


1-1241068432
MultIfleX
2009-04-30 09:13
2010.03.21
"Global" exception handler


1-1240562868
Unknown user
2009-04-24 12:47
2010.03.21
Странная утечка памяти, обнаруживаемая EurekaLog


4-1228827942
Alex_C
2008-12-09 16:05
2010.03.21
Открытие COM-порта при использовании переходника USB-COM