用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c#代码库

抽取exe和dll程序图标

2016-08-14 作者: 小章举报

[c#]代码库

  [System.Runtime.InteropServices.DllImport("shell32.dll")]
      private static extern int ExtractIconEx(string lpszFile, int niconIndex, IntPtr []phiconLarge,IntPtr []phiconSmall, int nIcons);
 
       private IntPtr[] largeIcons, smallIcons ;  //存放大/小图标的指针数组
 
       private string appPath = @"D:\Program Files\Tencent\QQ\Bin\QQ.exe";
 
      //第一步:获取程序中的图标数
      
      int IconCount = ExtractIconEx(appPath, -1, null,null, 0); 
    
     //第二步:创建存放大/小图标的空间
 
      largeIcons = new IntPtr[IconCount];
     
      smallIcons = new IntPtr[IconCount];
 
     //第三步:抽取所有的大小图标保存到largeIcons和smallIcons中
      
      ExtractIconEx(appPath, 0, largeIcons,smallIcons, IconCount);
     
     //第四步:显示抽取的图标(推荐使用imageList和listview搭配显示)
 
      for (int i = 0; i < IconCount; i++)
      {
            this.imageList1.Images.Add(Icon.FromHandle(largeIcons[i])); //图标添加进imageList中
 
            ListViewItem lvi = new ListViewItem();
 
            lvi.ImageIndex = i;  //listview子项图标索引项
 
            this.listview1.Items.Add(lvi);
      }
 
      //第五步:保存图标
       
       for (int i = 0; i < this.listview1.Items.Count; i++)
       {
            System.IO.FileStream fs = new System.IO.FileStream(Application.StartupPath +"\\newIcon.png", System.IO.FileMode.Create);
 
            this.imageList1.Images[this.listview1.Items[i].ImageIndex].Save(fs, System.Drawing.Imaging.ImageFormat.Png);
 
            fs.Close();
       }  

[源代码打包下载]




网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...