Главная страница
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.011 c
15-1262122484
Dmytry2010
2009-12-30 00:34
2010.03.21
Работа с сокетами TCP на Pascale под MS DOS


8-1203768940
nuflin
2008-02-23 15:15
2010.03.21
вершинные шейдеры


15-1261956446
KilkennyCat
2009-12-28 02:27
2010.03.21
Забавный Уota-сервис


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


2-1263819343
Alexey
2010-01-18 15:55
2010.03.21
Размер большой папки