令我惊讶的是,我没有找到如何为开始菜单应用程序组文件夹设置图标的解决方案。我正在寻找InnoSetup脚本中的自动解决方案。
提前感谢您。
令我惊讶的是,我没有找到如何为开始菜单应用程序组文件夹设置图标的解决方案。我正在寻找InnoSetup脚本中的自动解决方案。
提前感谢您。
*.ico
作为资源使用(其中c:\somepath\icon.ico
是指向您的图标的路径),请创建以下内容的desktop.ini
文件:[.ShellClassInfo]
IconResource=c:\somepath\icon.ico,0
desktop.ini
文件(其中 c:\somepath\program.exe
是指向你的可执行文件的路径):[.ShellClassInfo]
IconResource=c:\somepath\program.exe,0
将此desktop.ini
文件保存到您要应用图标的目录中。非常重要的一点是,您必须将这个新创建的文件属性设置为隐藏和系统,否则它将无法正常工作!
因此,请仔细检查InnoSetup是否会在安装时清除这些属性,如果您将文件包含在安装程序中。
PathMakeSystemFolder
API 将其设置为系统文件夹。desktop.ini
将自动设置为正确的属性。 - kobikSHChangeNotify
是我的第一个候选项,它具有指针参数。最接近此功能的函数是SHGetSetFolderCustomSettings
,它可以创建desktop.ini
文件,但更复杂,更容易的方法可能是将其放入我最喜欢的外部库中。 - TLamaPChar
:procedure SHChangeNotify(wEventId: Longint; uFlags: UINT; dwItem1, dwItem2: PChar); external 'SHChangeNotify@shell32.dll stdcall'
。将 ''
作为 nil
传递。这里有一个很好的例子。 - kobik