Главная страница
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.008 c
2-1263473743
sana
2010-01-14 15:55
2010.03.21
Работа с массивом


2-1263482392
Sunktor
2010-01-14 18:19
2010.03.21
Как в CodeGear Delphi 2009 запретить показ вкладки Welcome Page


15-1261943074
Kerk
2009-12-27 22:44
2010.03.21
Отправьте СМС на номер 1234 и получите 100 рублей на счет


2-1263543792
tonich
2010-01-15 11:23
2010.03.21
USB


2-1263542459
Andy BitOff
2010-01-15 11:00
2010.03.21
Нумерация страниц в Ворде