好像有点高难度,但了解的话应该不难的,shell32.dll里面有windows系统的所有图标,我想获取里面的图标,应该怎么获取,程序要怎么写?我不想用第三方软件。
解决方案 »
- C# 怎么让winform程序中的输入文本框保留上次的输入
- dataGridView问题
- VS2005安装问题 在线等 急~!!
- 一个很菜的问题,但是我突然想不大明白了
- 求救,请教关闭上一层的窗口问题。
- DataGrid的高级应用:用DataGrid显示十字交叉表中的数据
- 在C#中如何使用SWP_NOACTIVATE,使得窗口显示的时候
- C#怎么从ArrayList中取出具有相同成员的不同结构体啊?
- 求教:如何利用从xml中读取的属性值定义变量
- electron如何配置PHP解释件进入,使桌面应用具备后端交互功能!求大佬回复
- byte和byte[]有什么区别,最好举个例子说明
- 请问:b/s如何弹出确认对话框?
http://www.codeproject.com/KB/shell/shellicon.aspx
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;
}