2012-10-11 78 views
5

當您查看「計算機」時,Windows 7的每個驅動器都有非常漂亮的圖標。它把右邊的圖標用於CD,SD卡,U盤,USB硬盤等如何獲取Windows資源管理器中使用的驅動器圖標?

它看起來像這樣:

Driving

我想訪問這些圖標和使用是正確的在我的用戶界面。我嘗試過訪問文件夾圖標和文件圖標的各種方法,但沒有任何工作。什麼不起作用:

  • Icon.ExtractAssociatedIcon( 「F:\」)

  • 的SHGetFileInfo( 「F:\」,0,參考shinfo,(UINT)Marshal.SizeOf(shinfo) ,Win32.SHGFI_ICON | Win32.SHGFI_SMALLICON);

  • ShellObject.FromParsingName( 「F:\」)。縮略圖

我還可以試試,或者我究竟做錯了什麼?

編輯:我不是在尋找一個圖標的來源,我想獲得每個驅動器的正確圖標。

+0

當你說你的解決方案不起作用時,他們實際返回的圖標是什麼? – SirDarius

+0

ExtractAssociatedIcon和ShellObject會拋出異常,因爲該驅動器不是文件。 SHGetFileInfo返回一個低分辨率的通用圖標,而不是每個驅動器的特定圖標。 – Sugrue

回答

0

我相信他們都嵌入在這裏:

%SystemRoot%\system32\SHELL32.dll 
+1

謝謝,但我怎麼知道每個驅動器使用哪一個? – Sugrue

2

你應該小心你用什麼圖標,因爲他們中的很多不能被授權。但你肯定被允許使用您找到的那些下

C:\ Program Files文件(x86)的\微軟的Visual Studio 10.0 \ Common7 \ VS2010ImageLibrary \ 1033 \ VS2010ImageLibrary.zip(例如爲Visual Studio 2010)

C:\ Program Files文件(x86)的\微軟的Visual Studio 8 \ Common7 \ VS2005ImageLibrary \ VS2005ImageLibrary.zip(exampel的Visual Studio 2005)

+0

謝謝。我想我真正的問題是如何知道每個驅動器使用哪個圖標? – Sugrue

相關問題