Главная страница
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
1-1240570370
MultIfleX
2009-04-24 14:52
2010.03.21
Адрес вызывающего функцию


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


2-1263888390
lewka
2010-01-19 11:06
2010.03.21
Взоимодействие программы Компас и Delphi


2-1263805978
NBAH1990
2010-01-18 12:12
2010.03.21
как найти какой области принадлежит значение?


3-1236248430
WeTeR
2009-03-05 13:20
2010.03.21
Процедура для определения типа столбца таблицы