c# 获取系统文件图标
最近写一个小程序需要获得启动项的信息在读取启动程序图标时遇到了这个问题我们知道在c#里添加图标最常用的方法是使用ImageList但要读取的程序图标是动态的那么就需要动态的获得文件的图标在网上找了找发现有一个类直接使用就可以了贴出来和大家共享本人在写一个类似于360safe的东西不过软件增加了更多的个人色彩希望大家能多多交流showSystemIcon.cs1usingSystem;2usingSystem.Collections.Generic;3usingSystem.ComponentModel;4usingSystem.Data;5usingSystem.Drawing;6usingSystem.Text;7usingSystem.Windows.Forms;8usingSystem.Runtime.InteropServices;910namespaceRepairTools_2._011{12classshowSystemIcon13{14publicstaticuintSHGFI_ICON0x100;15publicstaticuintSHGFI_DISPLAYNAME0x200;16publicstaticuintSHGFI_TYPENAME0x400;17publicstaticuintSHGFI_ATTRIBUTES0x800;18publicstaticuintSHGFI_ICONLOCATION0x1000;19publicstaticuintSHGFI_EXETYPE0x2000;20publicstaticuintSHGFI_SYSICONINDEX0x4000;21publicstaticuintSHGFI_LINKOVERLAY0x8000;22publicstaticuintSHGFI_SELECTED0x10000;23publicstaticuintSHGFI_LARGEICON0x0;24publicstaticuintSHGFI_SMALLICON0x1;25publicstaticuintSHGFI_OPENICON0x2;26publicstaticuintSHGFI_SHELLICONSIZE0x4;27publicstaticuintSHGFI_PIDL0x8;28publicstaticuintSHGFI_USEFILEATTRIBUTES0x10;2930publicstaticuintFILE_ATTRIBUTE_NORMAL0x80;31publicstaticuintLVM_FIRST0x1000;32publicstaticuintLVM_SETIMAGELISTLVM_FIRST3;33publicstaticuintLVSIL_NORMAL0;34publicstaticuintLVSIL_SMALL1;3536[DllImport(Shell32.dll)]37publicstaticexternIntPtr SHGetFileInfo(stringpszPath,38uintdwFileAttributes,refSHFILEINFO psfi,39intcbfileInfo,uintuFlags);4041publicstructSHFILEINFO42{43publicIntPtr hIcon;44publicintiIcon;45publicintdwAttributes;46publicstringszDisplayName;47publicstringszTypeName;48}4950[DllImport(User32.DLL)]51publicstaticexternintSendMessage(IntPtr hWnd,52uintMsg, IntPtr wParam, IntPtr lParam);5354publicvoidListViewSysImages(ListView AListView)55{56SHFILEINFO vFileInfonewSHFILEINFO();57IntPtr vImageListSHGetFileInfo(,0,refvFileInfo,58Marshal.SizeOf(vFileInfo), SHGFI_SHELLICONSIZE|59SHGFI_SYSICONINDEX|SHGFI_LARGEICON);6061SendMessage(AListView.Handle, LVM_SETIMAGELIST, (IntPtr)LVSIL_NORMAL,62vImageList);6364vImageListSHGetFileInfo(,0,refvFileInfo,65Marshal.SizeOf(vFileInfo), SHGFI_SHELLICONSIZE|66SHGFI_SYSICONINDEX|SHGFI_SMALLICON);67SendMessage(AListView.Handle, LVM_SETIMAGELIST, (IntPtr)LVSIL_SMALL,68vImageList);69}7071publicintFileIconIndex(stringAFileName)72{73SHFILEINFO vFileInfonewSHFILEINFO();74SHGetFileInfo(AFileName,0,refvFileInfo,75Marshal.SizeOf(vFileInfo), SHGFI_SYSICONINDEX);76returnvFileInfo.iIcon;77}78}79}80使用把它添加到ListView中1privatevoidbtnRunSearch_Click(objectsender, EventArgs e)2{3try4{5ListViewItem lvi;6ListViewItem.ListViewSubItem lvsi;7showSystemIcon showIconnewshowSystemIcon();89this.lvStartupFileList.Items.Clear();10lvStartupFileList.BeginUpdate();11foreach(stringstrinRegistryOperate.strRunRegistry())12{13stringstr1RegistryOperate.returnRun().GetValue(str).ToString();14showIcon.ListViewSysImages(lvStartupFileList);15lvinewListViewItem();16lvi.Textstr;17lvi.ImageIndexshowIcon.FileIconIndex(str1);18lvsinewListViewItem.ListViewSubItem();19lvsi.Textstr1;20lvi.SubItems.Add(lvsi);21lvStartupFileList.Items.Add(lvi);22}23lvStartupFileList.EndUpdate();24}25catch26{27MessageBox.Show(e.ToString());28}29}有什么问题大家交流交流吧

相关新闻

MMD模型导入Unity HDRP全流程:材质转换、动画重建与性能优化

MMD模型导入Unity HDRP全流程:材质转换、动画重建与性能优化

1. 项目概述:当MMD遇见Unity HDRP 如果你和我一样,既痴迷于MikuMikuDance(MMD)社区里那些充满活力的角色舞蹈,又渴望将这些精美的模型和动画融入到更现代、更具表现力的实时渲染项目中,那么你很可能已经在这…

2026/9/30 14:57:55 阅读更多 →
终极DXVK性能优化指南:告别游戏卡顿,畅享Linux游戏体验

终极DXVK性能优化指南:告别游戏卡顿,畅享Linux游戏体验

终极DXVK性能优化指南:告别游戏卡顿,畅享Linux游戏体验 【免费下载链接】dxvk Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine 项目地址: https://gitcode.com/gh_mirrors/dx/dxvk 你是否在Linux上玩Windows游戏时遇到过画…

2026/9/30 14:57:53 阅读更多 →
程序员如何开始做一个自己的 Side Project?

程序员如何开始做一个自己的 Side Project?

此系列文章我们开始聊一些软件开发人员如何开始动手写一些自己项目(Side Project)的思路与方法,以及过程中可能需要准备的知识,并分享一些相关的资源给大家。 1. 什么是 Side Project Side Project 对应的中文是副业、业余项目或小…

2026/9/30 15:47:31 阅读更多 →

最新新闻

OpenClaw Windows 搭建教程:从 WSL2 到 PowerShell 的完整配置流程

OpenClaw Windows 搭建教程:从 WSL2 到 PowerShell 的完整配置流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 14:35:53 阅读更多 →
图片被WPS截胡还卡打印?三步夺回默认关联与打印通道

图片被WPS截胡还卡打印?三步夺回默认关联与打印通道

打开一张图片想打印,结果WPS直接弹窗告诉你:需要会员。更要命的是,你根本没想用WPS看图——它自己把你的默认打开方式接管了,双击任意一张照片,出来的永远是那个带着各种付费指引的界面。这情况我身边不下三个人遇到过…

2026/10/1 14:35:53 阅读更多 →
CrossFormer实战:跨尺度注意力图像分类微调指南

CrossFormer实战:跨尺度注意力图像分类微调指南

简介:这份资源面向希望上手视觉Transformer的开发者与图像分类学习者,围绕CrossFormer这一引入跨尺度注意力机制的新型架构,提供从模型实现到分类任务落地的完整实战素材。压缩包共2000个文件,约835.34MB,其中1986个pn…

2026/10/1 14:35:53 阅读更多 →
西数加密移动硬盘突然无法解密?从两层锁机制到实操自救

西数加密移动硬盘突然无法解密?从两层锁机制到实操自救

西部数据的加密移动硬盘突然打不开了,输入密码提示错误,但软件里的“删除密码”按钮还亮着,这种“活见鬼”的状态,我这几年收到的求助没有一百也有八十。用户描述基本都是同一套:My Passport或者My Book插上电&#xf…

2026/10/1 14:35:53 阅读更多 →
VC++ UDP Demo 实战:从 Winsock 编程到丢包排查与性能优化

VC++ UDP Demo 实战:从 Winsock 编程到丢包排查与性能优化

简介:这是一份面向VC初学者与网络编程入门者的UDP通信演示工程,围绕Windows平台Winsock套接字展开,帮助读者理解无连接传输协议的基本用法。资源以客户端与服务器双端示例为核心,覆盖WSAStartup初始化、socket创建、sockaddr_in地…

2026/10/1 14:35:53 阅读更多 →
意识量子观察者的本体、内外时空结构| 赵杰 | 量子感知论

意识量子观察者的本体、内外时空结构| 赵杰 | 量子感知论

作者:赵杰 清华大学硕士、微美全息云科技(NASDAQ:WIMI)董事长、微算法科技(NASDAQ:MLGO)董事长、育杰奖学金创始人 基础公理体系(本套推演的逻辑基石) 公理1:爱子是最基础的意识‑观察者单元。爱子不等同电子、光子这类物质量子;物…

2026/10/1 14:34:53 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →