• 大小: 49KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-04
  • 语言: 其他
  • 标签: 代码  

资源简介

2种方法获取关联文件图标和应用程序图标,源代码

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace GetIconOfFile
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        [DllImport(“Shell32.dll“)]
        static extern int SHGetFileInfo(string pszPath uint dwFileAttributes ref   SHFILEINFO psfi uint cbFileInfo uint uFlags);

        struct SHFILEINFO
        {
            public IntPtr hIcon;
            public int iIcon;
            public uint dwAttributes;
            public char szDisplayName;
            public char szTypeName;
        }

        /// 
        /// 从文件扩展名得到文件关联图标
        /// 

        /// 文件名或文件扩展名
        /// 是否是获取小图标,否则是大图标
        /// 图标
        static public Icon GetFileIcon(string fileName bool smallIcon)
        {
            SHFILEINFO fi = new SHFILEINFO();
            Icon ic = null;
            //SHGFI_ICON + SHGFI_USEFILEATTRIBUTES + SmallIcon   
            int iTotal = (int)SHGetFileInfo(fileName 100 ref fi 0 (uint)(smallIcon ? 273 : 272));
            if (iTotal > 0)
            {
                ic = Icon.FromHandle(fi.hIcon);
            }
            return ic;
        }

        private void button1_Click(object sender EventArgs e)
        {
            Graphics g = pictureBox1.CreateGraphics();
            g.Clear(pictureBox1.BackColor);
            g.DrawIcon(GetFileIcon(textBox1.Text true) 0 0);

            g = pictureBox2.CreateGraphics();
            g.Clear(pictureBox2.BackColor);
            g.DrawIcon(GetFileIcon(textBox1.Text false) 0 0);
        }

        private void linkLabel1_linkClicked(object sender linkLabellinkClickedEventArgs e)
        {
            System.Diagnostics.Process.Start(“http://www.codefans.net“);

        }

        private void label1_Click(object sender EventArgs e)
        {

        }
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       9728  2010-07-14 09:27  获取文件关联图标\GetIconOfFile\bin\Debug\GetIconOfFile.exe

     文件      28160  2010-07-14 09:27  获取文件关联图标\GetIconOfFile\bin\Debug\GetIconOfFile.pdb

     文件      14328  2010-07-14 09:56  获取文件关联图标\GetIconOfFile\bin\Debug\GetIconOfFile.vshost.exe

     文件        490  2007-07-21 01:33  获取文件关联图标\GetIconOfFile\bin\Debug\GetIconOfFile.vshost.exe.manifest

     文件       2260  2008-10-04 22:05  获取文件关联图标\GetIconOfFile\Form1.cs

     文件       4047  2008-10-04 22:05  获取文件关联图标\GetIconOfFile\Form1.Designer.cs

     文件       5814  2008-10-04 22:05  获取文件关联图标\GetIconOfFile\Form1.resx

     文件       3441  2010-07-14 09:27  获取文件关联图标\GetIconOfFile\GetIconOfFile.csproj

     文件        472  2008-10-04 22:02  获取文件关联图标\GetIconOfFile\Program.cs

     文件       1192  2008-03-12 03:57  获取文件关联图标\GetIconOfFile\Properties\AssemblyInfo.cs

     文件       2850  2010-07-14 09:27  获取文件关联图标\GetIconOfFile\Properties\Resources.Designer.cs

     文件       5612  2008-03-12 03:57  获取文件关联图标\GetIconOfFile\Properties\Resources.resx

     文件       1111  2010-07-14 09:27  获取文件关联图标\GetIconOfFile\Properties\Settings.Designer.cs

     文件        249  2008-03-12 03:57  获取文件关联图标\GetIconOfFile\Properties\Settings.settings

     文件       1395  2010-07-14 09:56  获取文件关联图标\GetIconOfFile.sln

    ..A..H.     26624  2010-07-14 10:00  获取文件关联图标\GetIconOfFile.suo

     文件      14328  2010-07-14 09:59  获取文件关联图标\icon\bin\Debug\icon.vshost.exe

     文件        490  2007-07-21 01:33  获取文件关联图标\icon\bin\Debug\icon.vshost.exe.manifest

     文件       2398  2010-07-14 09:58  获取文件关联图标\icon\Form1.cs

     文件       3157  2010-07-14 09:58  获取文件关联图标\icon\Form1.Designer.cs

     文件       6012  2010-07-14 09:58  获取文件关联图标\icon\Form1.resx

     文件       3754  2010-07-14 09:56  获取文件关联图标\icon\icon.csproj

     文件        485  2010-07-14 09:52  获取文件关联图标\icon\Program.cs

     文件       1350  2010-07-14 09:52  获取文件关联图标\icon\Properties\AssemblyInfo.cs

     文件       2858  2010-07-14 09:52  获取文件关联图标\icon\Properties\Resources.Designer.cs

     文件       5612  2010-07-14 09:52  获取文件关联图标\icon\Properties\Resources.resx

     文件       1089  2010-07-14 09:52  获取文件关联图标\icon\Properties\Settings.Designer.cs

     文件        249  2010-07-14 09:52  获取文件关联图标\icon\Properties\Settings.settings

     目录          0  2010-07-14 10:00  获取文件关联图标\icon\obj\Debug\TempPE

     目录          0  2010-07-14 09:27  获取文件关联图标\GetIconOfFile\bin\Debug

............此处省略13个文件信息

评论

共有 条评论