C#加载系统内部图标

    技术2022-05-11  2

    一,导入系统dll函数:

           using System.Runtime.InteropServices; 

           [DllImport("Shell32.dll")]        public static extern int ExtractIcon(IntPtr h, string strx, int ii);        protected virtual Icon myExtractIcon(string FileName, int iIndex)        {            try            {                IntPtr hIcon = (IntPtr)ExtractIcon(this.Handle, FileName, iIndex);                if (!hIcon.Equals(null))                {                    Icon icon = Icon.FromHandle(hIcon);                    return icon;                }            }            catch (Exception ex)            { MessageBox.Show(ex.Message, "错误提示", 0, MessageBoxIcon.Error); }            return null;        }

    二,按照以下方式调用函数

    //加载图标文件            Icon ic0 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 15);//我的电脑 0            TreeImageList.Images.Add(ic0);            Icon ic2 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 7);//可移动盘 1            TreeImageList.Images.Add(ic2);            Icon ic3 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 11);//光盘 2            TreeImageList.Images.Add(ic3);            Icon ic1 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 8);//硬盘 3            TreeImageList.Images.Add(ic1);            Icon ic4 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 3);//文件夹 4            TreeImageList.Images.Add(ic4);            Icon ic5 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 36);//文件 5            TreeImageList.Images.Add(ic5);


    最新回复(0)