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






1.80/5 (6投票s)
一个可以直接使用的封装类,用于创建快捷方式 (.lnk 文件) 和书签 (.url 文件),并最终附加在线图标资源到其中。
引言
如果您的应用程序需要创建 Internet 收藏夹 (.url) 或桌面快捷方式 (.lnk),网上有很多参考资料。但是,如果
- 必须将图标附加到文件,并且
- 该图标是一个在线资源,需要先下载
那么这篇文章可能会有所帮助。
CShortcutNBookmark
类封装了所有必要的工作:创建 .url 或 .lnk 文件、下载图标文件,以及将该图标分配给快捷方式文件。如果您时间紧迫,请调用高级函数。否则,请研究低级函数以进行学习或进行更多修改。
使用代码
只需包含 .h 和 .cpp 文件,然后调用一个函数。就这么简单。
将 "ShortcutNBookmark.h" 和 "ShortcutNBookmark.cpp" 添加到您的项目中。在 [项目设置]>[链接器] 中添加 "wininet.lib"。
- 添加收藏夹 (".url" 文件) (可能在按钮下方)
- 创建桌面快捷方式 (".lnk" 文件) (可能在按钮下方)
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
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 库。
- 转到 [工具]>[选项]>[目录]>[库文件]
- 将 "C:\Program Files\Microsoft Visual Studio\VC98\LIB" (旧库) 放在 "C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\LIB" (新库) 之上
请注意,在 Vista 中,由于增强的安全性,下载可能会失败。但是,有一些低安全性的文件夹,并且 CShortcutNBookmark
类会在该路径下下载文件。
历史
- 2008.06.28: 创建。