Изменить значок ярлыка программно - PullRequest
2 голосов
/ 24 сентября 2019

Я создаю ярлык со следующими кодами.

  var MyObject  : IUnknown;
  var MySLink   : IShellLink;
  var MyPFile   : IPersistFile;

  MyObject := CreateComObject(CLSID_ShellLink);
  MySLink  := MyObject as IShellLink;
  MyPFile  := MyObject as IPersistFile;
  with MySLink do
  begin
    SetPath(PChar(sExePath + sExeName));
    SetArguments(PChar (sParams));
    SetWorkingDirectory(PChar(sExePath));
  end;
  MyPFile.Save(PWChar(WideString(GetDesktopFolder + '\MyApp.lnk')), False);

Но я хочу изменить значок ярлыка.

Например, я делаю ярлык для NOTEPAD.EXE на моем DESKTOP.Итак, как я могу изменить свой значок.Когда вы ПРАВО щелкаете по ярлыку, выбираете свойства, затем вы видите кнопку с именем «ИЗМЕНИТЬ ЗНАЧОК» , вот что я хочу.

Как я могу это сделать с помощью кода?

1 Ответ

4 голосов
/ 24 сентября 2019

Спасибо @ Jonahatan

Ссылки IShellLinkW :: SetIconLocation метод

Пример кода

  with MySLink do
  begin
    SetPath(PChar(sExePath + sExeName));
    SetArguments(PChar (sParams));
    SetWorkingDirectory(PChar(sExePath));
    SetIconLocation(PWideChar(sNewIconFileName),0);
  end;
...