从文件或文件夹中提取图标
从文件或文件夹中提取图标
Windows Forms中有Icon.ExtractAssociatedIcon(MSDN:http://msdn.microsoft.com/en-us/library/system.drawing.icon.extractassociatedicon.aspx),但其缺点是无法从提取文件夹(包括磁盘根目录)的图标,并且在WPF程序中使用需要额外引用System.Drawing命名空间DLL。
因此使用SHGetFileInfo本地Windows API(MSDN:http://msdn.microsoft.com/en-us/library/bb762179.aspx),并将非托管图标资源转换成WPF的BitmapSource。
感谢互联网,就直接用这个链接所提供的代码来做SHGetFileInfo的执行:(http://stackoverflow.com/questions/6008600/get-program-icons),我把它包在一个叫IconExtractor的类中。