码迷,mamicode.com
首页 > Windows程序 > 详细

从 C#编写的Exe里面提取图标和图片

时间:2015-09-15 19:50:40      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:

记得原来是可以通过PE直接提取Exe里面的图片的,不知道为什么不能用了,下面是通过加载程序集反射出Resources 里面的图片或者图标;

提取结果直接存放到编译目录了,不知道向左向右,自己又回到Winform了

 

 //从Exe里面提取图标和图片
            Assembly assm = Assembly.LoadFrom("Swtpro4.exe");
            HashSet<string> l_strHashType = new HashSet<string>();
            foreach (string resName in assm.GetManifestResourceNames())
            {
                Stream stream = assm.GetManifestResourceStream(resName);
                ResourceReader rr = new ResourceReader(stream);
                IDictionaryEnumerator enumerator = rr.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    DictionaryEntry de = (DictionaryEntry)enumerator.Current;
                    l_strHashType.Add(de.Value.GetType().ToString());

                    switch (de.Value.GetType().ToString())
                    {
                        case "System.Drawing.Icon":
                            System.Drawing.Icon ic = (Icon)de.Value;
                            //路径根据自己需要更改
                            using (System.IO.Stream sm = new FileStream(de.Key.ToString() + ".ico", FileMode.Create))
                            {
                                ic.Save(sm);
                            }

                            break;
                        case "System.Drawing.Bitmap":
                            System.Drawing.Bitmap icbmp = (Bitmap)de.Value;
                            icbmp.Save(de.Key.ToString() + ".bmp");
                            break;
                            //TODO 这里我只写了2种
                        default:
                            break;
                    }
                    //de.Key是资源名
                    //de.Value是资源内容
                }
            }

            Console.WriteLine(l_strHashType.Count);

 

从 C#编写的Exe里面提取图标和图片

标签:

原文地址:http://www.cnblogs.com/maanshancss/p/4767675.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!