如何获取Windows资源管理器中使用的驱动器图标?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取Windows资源管理器中使用的驱动器图标?相关的知识,希望对你有一定的参考价值。

当您查看“计算机”时,Windows 7为每个驱动器提供了非常漂亮的图标。它为CD,SD卡,USB记忆棒,USB硬盘等提供了正确的图标。

它看起来像这样:

Driving

我想访问这些图标并在我的UI中使用正确的图标。我尝试了各种访问文件夹图标和文件图标的方法,但没有任何作用。什么行不通:

  • Icon.ExtractAssociatedIcon( “F:”)
  • SHGetFileInfo(“F:”,0,ref shinfo,(uint)Marshal.SizeOf(shinfo),Win32.SHGFI_ICON | Win32.SHGFI_SMALLICON);
  • ShellObject.FromParsingName。( “F:”)缩略图

我还能尝试什么,或者我做错了什么?

编辑:我不是在寻找图标来源,我正在尝试为每个驱动器获取正确的图标。

答案

经过大量的挖掘,我发现了这个:https://tabbles.net/how-to-have-large-file-icons-with-shgetfileinfo-in-c/

问题是SHGetFileInfo可以获得小型的XP前样式图标,这些图标是16x16,但要获得更大的现代Vista和Win7'Jumbo'图标,这些图标高达256x256,您需要使用更复杂的多步骤方法。该链接提供代码。

另一答案

您应该小心使用哪些图标,因为很多图标都无法获得许可。但你肯定可以使用你找到的那些

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的例子)

另一答案

我相信它们嵌入在这里:

%SystemRoot%system32SHELL32.dll

以上是关于如何获取Windows资源管理器中使用的驱动器图标?的主要内容,如果未能解决你的问题,请参考以下文章

使用 resource.rc 时,Windows 资源管理器中的图标显示 2 个不同的图标

如何像在 Windows 资源管理器中一样在 Delphi 中获取排序顺序?

获取 window任务栏已经打开应用程序窗口(也就是任务管理器中前台进程)的图标

改变win7驱动图标

无法从 C# 和图形资源管理器中的 Sharepoint 图形获取驱动器项目和驱动器文件夹

如何清除Windows10中的恢复分区