当您查看“计算机”时,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:\”)缩图
我还能尝试什么,或者我做错了什么?
编辑:我不是在寻找图标来源,我正在尝试为每个驱动器获取正确的图标。
答案 0 :(得分:3)
经过大量挖掘后,我发现了这一点:https://tabbles.net/how-to-have-large-file-icons-with-shgetfileinfo-in-c/
问题是SHGetFileInfo可以获得16x16的小型XP前风格图标,但是为了获得更大的现代Vista和Win7'Jumbo'图标,这些图标高达256x256,你需要使用更复杂的多步法。该链接提供代码。
答案 1 :(得分: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的例子)
答案 2 :(得分:0)
我相信它们已经嵌入到这里:
%SystemRoot%\system32\SHELL32.dll