65.9K
CodeProject 正在变化。 阅读更多。
Home

一个用于创建快捷方式 (.lnk) 和书签 (.url) 并附加在线图标的封装类

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.80/5 (6投票s)

2008年6月27日

CPOL

1分钟阅读

viewsIcon

30545

downloadIcon

251

一个可以直接使用的封装类,用于创建快捷方式 (.lnk 文件) 和书签 (.url 文件),并最终附加在线图标资源到其中。

引言

如果您的应用程序需要创建 Internet 收藏夹 (.url) 或桌面快捷方式 (.lnk),网上有很多参考资料。但是,如果

  1. 必须将图标附加到文件,并且
  2. 该图标是一个在线资源,需要先下载

那么这篇文章可能会有所帮助。

CShortcutNBookmark 类封装了所有必要的工作:创建 .url.lnk 文件、下载图标文件,以及将该图标分配给快捷方式文件。如果您时间紧迫,请调用高级函数。否则,请研究低级函数以进行学习或进行更多修改。

使用代码

只需包含 .h.cpp 文件,然后调用一个函数。就这么简单。

将 "ShortcutNBookmark.h" 和 "ShortcutNBookmark.cpp" 添加到您的项目中。在 [项目设置]>[链接器] 中添加 "wininet.lib"。

  1. 添加收藏夹 (".url" 文件) (可能在按钮下方)
  2. CShortcutNBookmark csnb;
    csnb.AddFavoriteNAttachIcon("GrooveDive"/*title or file name*/, 
             "http://www.groovedive.com"/*target url*/, 
             "http://www.groovedive.com/image/tulip.ico"/*icon url*/);
    
    // csnb.AddFavorite("GrooveDive", "http://www.groovedive.com");
    // is also available. this function will use the icon of your application
  3. 创建桌面快捷方式 (".lnk" 文件) (可能在按钮下方)
  4. CShortcutNBookmark csnb;
    csnb.CreateDesktopShortcutNAttachIcon("GrooveDive"/*title or file name*/,
            "http://www.groovedive.com"/*target url*/, 
            "http://www.groovedive.com/image/tulip.ico"/*icon url*/);
    
    // csnb.CreateDesktopShortcut("GrooveDive", "http://www.groovedive.com");
    // is also available. this function will use the icon of your application

Notice

在某些情况下,编译会因以下链接错误消息而失败

shell32.lib(shguid.obj) : 
      fatal error LNK1103: debugging information corrupt; recompile module

一个原因是新的 SDK 库。

  1. 转到 [工具]>[选项]>[目录]>[库文件]
  2. 将 "C:\Program Files\Microsoft Visual Studio\VC98\LIB" (旧库) 放在 "C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\LIB" (新库) 之上

请注意,在 Vista 中,由于增强的安全性,下载可能会失败。但是,有一些低安全性的文件夹,并且 CShortcutNBookmark 类会在该路径下下载文件。

历史

  • 2008.06.28: 创建。
© . All rights reserved.