以编程方式更改快捷方式图标
Change ShortCut Icon programmatically
我用以下代码创建了一个快捷方式。
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 的快捷方式。所以我怎样才能改变它的图标。
当您右键单击快捷方式时,选择属性,然后您可以看到一个名为 "CHANGE ICON" 的按钮,这就是我想要的。
我如何使用代码做到这一点?
感谢@Jonahatan
友情链接
IShellLinkW::SetIconLocation method
代码示例
with MySLink do
begin
SetPath(PChar(sExePath + sExeName));
SetArguments(PChar (sParams));
SetWorkingDirectory(PChar(sExePath));
SetIconLocation(PWideChar(sNewIconFileName),0);
end;
我用以下代码创建了一个快捷方式。
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 的快捷方式。所以我怎样才能改变它的图标。 当您右键单击快捷方式时,选择属性,然后您可以看到一个名为 "CHANGE ICON" 的按钮,这就是我想要的。
我如何使用代码做到这一点?
感谢@Jonahatan
友情链接 IShellLinkW::SetIconLocation method
代码示例
with MySLink do
begin
SetPath(PChar(sExePath + sExeName));
SetArguments(PChar (sParams));
SetWorkingDirectory(PChar(sExePath));
SetIconLocation(PWideChar(sNewIconFileName),0);
end;