zoukankan      html  css  js  c++  java
  • 从 C#编写的Exe里面提取图标和图片

    记得原来是可以通过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);
  • 相关阅读:
    Python __repr__()方法:显示属性
    Python SQLAlchemy入门教程(基本用法)
    彻底搞懂Token、Session和Cookie。
    MTV和MVC的区别
    Flask配置Cors跨域
    跨域资源共享 CORS 详解
    浏览器同源政策及其规避方法
    敏捷开发
    Nginx搭建正向代理服务器支持https
    为什么使用k8s和容器作为devops的底层平台
  • 原文地址:https://www.cnblogs.com/maanshancss/p/4767675.html
Copyright © 2011-2022 走看看