1. ホーム
  2. c#

C# windows api経由でファイルからサムネイルを取得する

2023-08-04 20:33:28

質問

Windows エクスプローラーには、ファイルのサムネイルを表示する機能があります。これらのサムネイルは、コアおよびサード パーティのシェル拡張機能によって提供されます。

Windows にサムネイルを提供するためにシェルを拡張する方法を知っています。

私がしたいことは、C#を使用してシェル経由でシステム上の任意のファイルからサムネイル画像を取得することです。これは可能ですか?

基本的に、私はカスタム ファイル ブラウザを書いていて、サムネイルを表示したいのですが、独自のサムネイルを作成するために地球上のすべてのファイルを解析することは不可能です。

明確化。 多くの回答は、Web ページのサムネイルや画像の拡大縮小が中心になっているようです。しかし、それは私が求めているものではありません。私が欲しいのは、これらのファイル タイプ (DOC、PDF、.3DM、.DWG など) のサムネイル表示を Windows に要求することです。Windows がすでに方法を知っているので、自分で解析、レンダリング、およびサムネイル作成はしたくありません。

私が回答として投稿したコードは実際に動作します...多分それは少し簡素化され、きれいにすることができます。

どのように解決するのですか?

それは数ヶ月前のものですが、それは私のために仕事を成し遂げました (Win7 で、MPEG-4 ファイルのサムネイルを抽出します)。

コードです。

ShellFile shellFile = ShellFile.FromFilePath(pathToYourFile);
Bitmap shellThumb = shellFile.Thumbnail.ExtraLargeBitmap;

お役に立てれば幸いです。