首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为生成的快捷方式应用图标?

问如何为生成的快捷方式应用图标?
EN

Stack Overflow用户
提问于 2018-01-19 11:03:36
回答 1查看 1K关注 0票数 1

我们在windows的“开始”菜单中创建一个快捷方式,对于该快捷方式,我们要应用目标文件的图标。目标文件是帮助和手册的帮助文件(后缀为.chm)。我们尝试了以下代码:

代码语言:javascript
复制
var lPath = @"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ProductName\Help.lnk";
var lTargetPath = @"C:\Program Files\ManufacturerName\ProductName\Help.chm";

WshShell lWshShell = new WshShell();
IWshShortcut lShortcut = (IWshShortcut)lWshShell.CreateShortcut(lPath);
lShortcut.WorkingDirectory = lPath;            
lShortcut.TargetPath = lTargetPath;

lShortcut.IconLocation = lTargetPath; // <-- I want to apply the same icon as the target file here.

目标.chm文件具有以下图标:

​

​

执行此代码时,“开始”菜单中的快捷方式如下所示:

​

​

如何自动应用目标文件的图标?

注意:当我使用相同的路径通过WIX创建快捷方式时,图标将被应用到快捷方式中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-19 12:07:31

我的印象是,Windows中任何文件的图标都是与程序的.exe相关联的图标,默认情况下将打开该文件(即文件关联和默认程序)。对于快捷方式,默认情况下应该遵循符号链接,并显示目标本身拥有的任何图标,,除非您重写它。

我的猜测是,lShortcut.IconLocation = lTargetPath;行将图标设置为非有效图标,但是Windows仍然会尝试遵守它,并返回到默认的“空白”图标。请注意,.chm文件本身没有图标,也不是图标。所显示的图标仅仅是系统帮助查看器的图标。

我只是手动测试了一下。在桌面上创建一个.txt文件并验证它有一个图标。然后右击它并选择Send To -> Desktop (Create Shortcut)创建快捷方式。它会有同样的图标。右键单击快捷方式,选择Properties,然后Set Icon...并键入任意路径.按OK,取消警告,再次按OK。

对我来说,图标从记事本++的图标(我默认的.txt文件)变为空白文件图标。

当我下一次在快捷方式上选择“设置图标”时,Windows将首先显示一个警告,即无法找到我以前设置的无效路径,因此这证明了无论您填写什么,都保存在某个地方,而不管它是否有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48339659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档