Windows资源管理器可以显示文件的缩略图.这些缩略图由核心和第三方shell扩展提供.
我知道如何扩展shell以向Windows提供缩略图.
我想要做的是使用C#通过shell从系统上的任何文件中检索缩略图.这可能吗?
本质上,我正在编写一个自定义文件浏览器,我想显示缩略图,并且无法解析地球上的每个文件以制作我自己的缩略图.
澄清:许多答案似乎都围绕网页缩略图或缩放图像.但这根本不是我想要的.我想要的是向Windows询问这些文件类型的缩略图:.DOC,.PDF,.3DM,.DWG ......和mabye大约十几个.我不想自己解析,渲染和制作缩略图,因为Windows已经知道如何.
我作为答案发布的代码实际上有用......也许它可以简化并清理一下.
每个安装的操作系统中都有很多内置的ThumbnailProviders.由于这些提供程序Windows可以显示许多文件的缩略图.例如,Windows资源管理器可以显示*.jpg文件的内容,但也可以显示Solidworks*.sldprt文件的内容(如果安装了SolidWorks).
但有没有办法获得这些缩略图?我曾尝试使用Windows API CodecPack来管理它,但我仅在Windows 7上成功.
ShellFile shellFile = ShellFile.FromFilePath(filePath);
Bitmap shellThumb = shellFile.Thumbnail.Bitmap;
Run Code Online (Sandbox Code Playgroud)
问题是:在Windows XP/Vista上是否有任何其他可用的方法来获取已注册缩略图提供程序的任何文件的缩略图?我真的很绝望......