- 浏览: 54520 次
- 性别:
- 来自: 长沙
最新评论
-
laiyuan:
规范太差了吧,都没注释,完全没达到需要,输出的levelSet ...
字符串多模式匹配算法:关键字过滤技术 -
supercode:
ACCP?
ASP.NET加上水印 -
huqing:
水印 是什么 不懂
ASP.NET加上水印 -
leiwuluan:
.NET截取指定长度汉字超出部分以...代替 -
leiwuluan:
.NET截取指定长度汉字超出部分以...代替
using System; using System.IO; using System.Drawing; using Microsoft.Win32; using System.Runtime.InteropServices; namespace GetIconDemo { /// <summary> /// 提供从操作系统读取图标的方法 /// </summary> public class GetSystemIcon { /// <summary> /// 依据文件名读取图标,若指定文件不存在,则返回空值。 /// </summary> /// <param name="fileName"></param> /// <returns></returns> public static Icon GetIconByFileName(string fileName) { if (fileName == null || fileName.Equals(string.Empty)) return null; if (!File.Exists(fileName)) return null; SHFILEINFO shinfo = new SHFILEINFO(); //Use this to get the small Icon Win32.SHGetFileInfo(fileName, 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), Win32.SHGFI_ICON | Win32.SHGFI_SMALLICON); //The icon is returned in the hIcon member of the shinfo struct System.Drawing.Icon myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon); return myIcon; } /// <summary> /// 给出文件扩展名(.*),返回相应图标 /// 若不以"."开头则返回文件夹的图标。 /// </summary> /// <param name="fileType"></param> /// <param name="isLarge"></param> /// <returns></returns> public static Icon GetIconByFileType(string fileType, bool isLarge) { if (fileType == null || fileType.Equals(string.Empty)) return null; RegistryKey regVersion = null; string regFileType = null; string regIconString = null; string systemDirectory = Environment.SystemDirectory + "\\"; if (fileType[0] == '.') { //读系统注册表中文件类型信息 regVersion = Registry.ClassesRoot.OpenSubKey(fileType, true); if (regVersion != null) { regFileType = regVersion.GetValue("") as string; regVersion.Close(); regVersion = Registry.ClassesRoot.OpenSubKey(regFileType + @"\DefaultIcon", true); if (regVersion != null) { regIconString = regVersion.GetValue("") as string; regVersion.Close(); } } if (regIconString == null) { //没有读取到文件类型注册信息,指定为未知文件类型的图标 regIconString = systemDirectory + "shell32.dll,0"; } } else { //直接指定为文件夹图标 regIconString = systemDirectory + "shell32.dll,3"; } string[] fileIcon = regIconString.Split(new char[] { ',' }); if (fileIcon.Length != 2) { //系统注册表中注册的标图不能直接提取,则返回可执行文件的通用图标 fileIcon = new string[] { systemDirectory + "shell32.dll", "2" }; } Icon resultIcon = null; try { //调用API方法读取图标 int[] phiconLarge = new int[1]; int[] phiconSmall = new int[1]; uint count = Win32.ExtractIconEx(fileIcon[0], Int32.Parse(fileIcon[1]), phiconLarge, phiconSmall, 1); IntPtr IconHnd = new IntPtr(isLarge ? phiconLarge[0] : phiconSmall[0]); resultIcon = Icon.FromHandle(IconHnd); } catch { } return resultIcon; } } [StructLayout(LayoutKind.Sequential)] public struct SHFILEINFO { public IntPtr hIcon; public IntPtr iIcon; public uint dwAttributes; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string szDisplayName; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)] public string szTypeName; }; /// <summary> /// 定义调用的API方法 /// </summary> class Win32 { public const uint SHGFI_ICON = 0x100; public const uint SHGFI_LARGEICON = 0x0; // 'Large icon public const uint SHGFI_SMALLICON = 0x1; // 'Small icon [DllImport("shell32.dll")] public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags); [DllImport("shell32.dll")] public static extern uint ExtractIconEx(string lpszFile, int nIconIndex, int[] phiconLarge, int[] phiconSmall, uint nIcons); } } 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/snlei/archive/2009/03/08/3970345.aspx
发表评论
-
常用表单正则表达式
2010-06-23 16:53 908常用表单正则表达式,仅 ... -
asp.net 页面中添加普通视频的几种方式
2010-06-18 11:29 1040第一种 是通过调用window media player进行 ... -
关于OpenFileDialog的使用
2010-03-11 18:37 1791为了方便同事在日常工作中很快速生成大量数据, 我做 ... -
ASP.NET页面刷新的实现方法总结
2010-02-26 15:44 1343先看看ASP.NET页面刷新的实现方法: 第一: pri ... -
getElementById 与 getElementsByTagName的区别【Javascript】
2010-01-30 14:45 1806在javascript中,操作HTML DOM时,需要经常用到 ... -
javascript实现垂直无缝滚动详解
2010-01-30 14:43 1579无缝滚动可以在flash中 ... -
javascript无缝水平滚动实例
2010-01-30 14:42 2617首先看源代码: <html> <head ... -
分页查询的SQL存储过程
2010-01-29 11:40 659select top 5 * from student ... -
C# Checklistbox用法
2010-01-26 17:54 33071、添加项: checkedListBox1.I ... -
C#实现组合键
2010-01-26 17:25 2019// Ctrl + H if ((Control.Modi ... -
JS实现可拖拽的菜单
2009-11-19 16:56 950Html代码 <html> ... -
认识C#中的委托和事件
2009-11-10 19:53 776【简 介】委托 和 事件在 .Net Framework中的应 ... -
VS2005快捷键大全
2009-11-10 18:25 1732CTRL + SHIFT + B生成解决方案 CTRL + F ... -
CSS+JQuery实现的性感漂亮导航
2009-11-10 18:06 14611.demo.html HTML代码: & ... -
C# WinForm 中批量清除文本框
2009-11-10 16:47 2540/// <summary> ... -
C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
2009-10-13 15:41 11111.C#类和接口的区别接口 ... -
HTML中小meta的大作用
2009-10-13 15:31 663以前一直不知道HTML中的 ... -
javaScript日期时间
2009-09-22 14:09 932JavaScript脚本如下: <script lan ... -
ASP.NET获取客户端IP地址、系统版本、浏览器版本
2009-09-22 13:18 3035using System; using System.Dat ... -
C#MD5加密解密【转载】
2009-08-24 13:59 5570using System.Security.Cryptogra ...
相关推荐
在C#编程中,读取文件图标是一项常见的任务,尤其当你需要开发文件管理器或资源浏览器这类应用时。文件图标通常与操作系统中的文件关联,表示文件类型或应用程序的视觉标识。下面将详细介绍如何使用C#来获取文件图标...
在本文中,我们将深入探讨如何使用C#从文件扩展名中获取与之关联的图标(Icon),并将这些图标保存为具有透明背景的PNG图片。这个过程涉及到系统资源的访问、图像处理以及文件操作等多个知识点。 首先,我们需要...
在这个示例中,我们首先导入了必要的命名空间,然后在`Main`方法中调用了`IcoHelper.GetIconForFilePath`来获取指定文件的图标。如果成功,我们可以选择保存图标为ICO文件,或者在用户界面上显示它。 获取ICO图标的...
在C#编程中,获取文件图标是一项常见的任务,特别是在开发Windows桌面应用程序时,例如WinForms。文件图标通常关联着特定类型的文件,如.txt文件、.docx文件或.exe可执行文件。这些图标由操作系统根据文件扩展名从...
总结来说,通过C#读取IPA文件并解析Info.plist,我们可以获取到iOS应用的多种信息,包括但不限于应用名称、版本号。这个过程涉及文件的压缩与解压缩、XML解析以及文件操作等技术,对提升C#编程技能和理解iOS应用结构...
在C#编程中,提取并显示文件包含的图标是一项常见的任务,特别是在开发桌面应用程序时,可能需要读取可执行文件、DLL或者ICO文件中的图标。本文将深入探讨如何使用C#来实现这一功能。 首先,我们需要理解文件图标是...
在C#编程中,获取文件夹和文件的图标是一项常见的任务,这通常涉及到Windows壳对象(Shell Objects)和系统图标库的使用。本教程将详细解释如何实现这一功能,并展示如何将这些信息显示在一个ListView控件中。 首先...
- 使用`Icon.ExtractAssociatedIcon`方法,可以直接从exe或dll文件中提取默认图标,但这个方法可能无法获取到所有分辨率的图标。 - 使用P/Invoke技术调用Windows API的`ExtractIconEx`函数,这个函数允许我们指定...
本示例着重介绍如何在C# WinForms应用程序中读取XML文件。 1. **XML文件读取基础** XML文件由元素、属性、文本、注释和处理指令等组成。在C#中,我们主要使用`System.Xml`命名空间中的类来操作XML,如`XmlDocument...
在C#中,可以使用`System.Drawing.Icon.ExtractAssociatedIcon`方法来读取文件图标。这个方法接受文件路径作为参数,并返回一个`Icon`对象。例如: ```csharp Icon fileIcon = Icon.ExtractAssociatedIcon...
在C#编程中,提取目录中最新的更新文件是一项常见的任务,尤其在软件更新或日志管理等场景下。本文将详细讲解如何利用C#来实现这个功能,以及涉及的相关知识点。 首先,我们要理解C#中的文件系统操作。C#提供了...
在C#编程中,提取文件中的图标是一项常见的任务,尤其对于处理可执行文件(.exe或.dll)或者图库文件(如.ico)。图标是应用程序的视觉标识,它们通常存储在可执行文件或动态链接库中。本文将详细介绍如何使用C#来...
【C# 2.0 图标浏览器】是一个基于C#编程语言开发的应用程序,它能够读取并显示ICO、EXE和DLL文件中的图标。这个示例程序旨在模仿Windows XP系统中为文件夹更改图标的功能,允许用户查看和选择不同文件类型的图标。...
2. **读取图标**:应用使用C#代码读取选中文件的资源信息,查找并提取图标数据。 3. **解码图标**:由于图标可能包含多种分辨率和色彩模式,工具需要解析这些信息并创建对应的Bitmap对象。 4. **显示预览**:提取的...
### C# 读取数据到下拉列表框 在C#开发中,经常需要从数据库中获取数据并将其展示在用户界面上。一种常见的做法是将数据填充到下拉列表框(ComboBox)中,以便用户可以选择。下面我们将详细介绍如何通过C#代码实现...
在本文中,我们将深入探讨如何使用C# Winform来实现一个ICON图标转换程序,该程序能够将PNG、JPEG和BMP格式的图像文件转换为ICO格式。首先,我们需要理解ICO文件格式以及C#中的图像处理。 ICO文件格式是Windows操作...
在C#中,可以使用System.Drawing命名空间下的类来处理ICO文件,包括读取、创建和修改ICO图标。 在提供的文件列表中,我们可以看到一系列以“_16x16.png”结尾的文件名,这表明它们是16x16像素尺寸的PNG图像,通常...
3. **读取图标资源**:接下来,使用`System.Drawing.Icon.ExtractAssociatedIcon()`方法,我们可以从可执行文件中提取图标。 ```csharp Icon programIcon = Icon.ExtractAssociatedIcon(exePath); ``` 4. **获取...
以上就是如何在C#中读取和使用ImageList中的图片,以及如何处理rar文件。确保正确引用System.IO和System.Drawing命名空间,以及在使用SharpCompress时引入SharpCompress库。这个过程对于Windows Forms开发者来说是...
以下是一个C#代码示例,用于根据文件类型获取相关图标的方法: 首先,我们需要导入一些必要的命名空间和DllImport特性来调用Windows API函数: ```csharp using System; using System.Drawing; using System....