6

Windows 7 では、[コンピューター] を表示すると、各ドライブに非常に便利なアイコンが表示されます。CD、SD カード、USB スティック、USB ハード ドライブなどに適切なアイコンを配置します。

次のようになります。

運転中

これらのアイコンにアクセスして、UI で適切なアイコンを使用したいと考えています。フォルダ アイコンやファイル アイコンにアクセスするさまざまな方法を試しましたが、うまくいきません。機能しないもの:

  • Icon.ExtractAssociatedIcon("F:\")

  • SHGetFileInfo("F:\", 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), Win32.SHGFI_ICON | Win32.SHGFI_SMALLICON);

  • ShellObject.FromParsingName("F:\").Thumbnail

他に何を試すことができますか、または何が間違っていますか?

編集:アイコンのソースを探しているのではなく、各ドライブの正しいアイコンを取得しようとしています。

4

3 に答える 3

4

たくさん掘り下げた後、私はこれを見つけました:https ://tabbles.net/how-to-have-large-file-icons-with-shgetfileinfo-in-c/

問題は、SHGetFileInfoが16x16の小さいXP以前のスタイルアイコンを取得できることですが、最大256x256のより大きな最新のVistaおよびWin7の「ジャンボ」アイコンを取得するには、より複雑なマルチステップメソッドを使用する必要があります。リンクはコードを提供します。

于 2012-10-12T15:42:37.690 に答える
2

多くのアイコンはライセンスを取得できないため、使用するアイコンには注意する必要があります。しかし、あなたは確かにあなたが下で見つけたものを使うことを許されています

c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ VS2010ImageLibrary \ 1033 \ VS2010ImageLibrary.zip(Visual Studio 2010の例)

また

c:\ Program Files(x86)\ Microsoft Visual Studio 8 \ Common7 \ VS2005ImageLibrary \ VS2005ImageLibrary.zip(Visual Studio 2005の例)

于 2012-10-11T13:10:33.720 に答える
0

私はそれらがここに埋め込まれていると信じています:

%SystemRoot%\system32\SHELL32.dll
于 2012-10-11T13:10:14.730 に答える