如何获取Windows资源管理器中使用的驱动器图标?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取Windows资源管理器中使用的驱动器图标?相关的知识,希望对你有一定的参考价值。
当您查看“计算机”时,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:”)缩略图
我还能尝试什么,或者我做错了什么?
编辑:我不是在寻找图标来源,我正在尝试为每个驱动器获取正确的图标。
经过大量的挖掘,我发现了这个: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任务栏已经打开应用程序窗口(也就是任务管理器中前台进程)的图标