好像有点高难度,但了解的话应该不难的,shell32.dll里面有windows系统的所有图标,我想获取里面的图标,应该怎么获取,程序要怎么写?我不想用第三方软件。

解决方案 »

  1.   

    ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.WIN32COM.v10.en/winui/winui/windowsuserinterface/resources/introductiontoresources/usingresources.htm
      

  2.   

    参考
    http://www.codeproject.com/KB/shell/shellicon.aspx
      

  3.   

            [DllImport("Shell32.dll")] //调用系统动态链接库
            public static extern int ExtractIcon(IntPtr h, string strx, int ii);//获取句柄,shell32.dll文件位置,shell32图片的序号 全部提取就0-277
             public void GetIcn() //调用myExtractIcon方法获取图标
            {
                Icon ic0 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 15);
                TreeImageList.Images.Add(ic0);
                Icon ic1 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 5);
                TreeImageList.Images.Add(ic1);
                Icon ic2 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 8);
                TreeImageList.Images.Add(ic2);
                Icon ic3 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 11);
                TreeImageList.Images.Add(ic3);
                Icon ic4 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 3);
                TreeImageList.Images.Add(ic4);
                Icon ic5 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 4);
                TreeImageList.Images.Add(ic5);
                Icon ic6 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 101);
                TreeImageList.Images.Add(ic6);
            }
            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)
                {
                    MessageBox.Show("程序出现未知错误请重试", "错误提示", 0, MessageBoxIcon.Error);
                }
                return null;
            }