0

我正在尝试使用 LSSharedFileListInsertItemURL 以编程方式添加启动项(10.5 中的推荐方法)

调用请求,但不需要项目的图标。图标由 iconRef 提供。

iconRef 可以通过对图标文件使用 FSSpec 创建。我的理解是 FS Spec 在以后的 10.4 中被弃用。

有没有办法在 iconRef 中获取应用程序 .icns 而无需使用 FSSpec 或者我只需要使用 NULL?

4

2 回答 2

0

我的理解是 FS Spec 在以后的 10.4 中被弃用。

比那更长。

有没有办法在 iconRef 中获取应用程序 .icns 而无需使用 FSSpec 或者我只需要使用 NULL?

使用功能_RegisterIconRefFromFSRef

通过NULL将添加没有图标的项目;IIRC,当用户在系统偏好设置中查看他们的登录项目列表时,它将具有文档图标。

于 2011-04-01T04:30:08.743 回答
0

IconsCore.h 文件说要使用GetIconRefFromFileInfo

extern OSStatus 
GetIconRefFromFileInfo(
  const FSRef *            inRef,
  UniCharCount             inFileNameLength,
  const UniChar *          inFileName,             /* can be NULL */
  FSCatalogInfoBitmap      inWhichInfo,
  const FSCatalogInfo *    inCatalogInfo,          /* can be NULL */
  IconServicesUsageFlags   inUsageFlags,
  IconRef *                outIconRef,
  SInt16 *                 outLabel)               /* can be NULL */

不推荐使用的功能的评论GetIconRefFromFile说你应该使用它。你可以把你的CFURL变成FSRefusing CFURLGetFSRef。希望有帮助。

于 2011-04-01T04:51:32.303 回答