• C#获取应用程序图标获取后在保存成ICO文件


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    using System.IO;

    namespace WindowsApplication1
    {
        
    public partial class Form1 : Form
        {
            
    public Form1()
            {
                InitializeComponent();
            }
            [StructLayout(LayoutKind.Sequential)]
            
    public struct SHFILEINFO
            {
                
    public IntPtr hIcon;
                
    public IntPtr iIcon;
                
    public uint dwAttributes;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst 
    = 260)]
                
    public string szDisplayName;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst 
    = 80)]
                
    public string szTypeName;
            };
            
    class Win32
            {
                
    public const uint SHGFI_ICON = 0x100;
                
    public const uint SHGFI_LARGEICON = 0x0// 'Large icon
                public const uint SHGFI_SMALLICON = 0x1// 'Small icon
                [DllImport("shell32.dll")]
                
    public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
                [DllImport(
    "shell32.dll")]
                
    public static extern uint ExtractIconEx(string lpszFile, int nIconIndex, int[] phiconLarge, int[] phiconSmall, uint nIcons);
            }
            
    private void button1_Click(object sender, EventArgs e)
            {
                openFileDialog1.ShowDialog();
                SHFILEINFO shinfo 
    = new SHFILEINFO();
                Win32.SHGetFileInfo(openFileDialog1.FileName, 
    0ref shinfo, (uint)Marshal.SizeOf(shinfo), Win32.SHGFI_ICON | Win32.SHGFI_LARGEICON);
                Icon myIcon 
    = Icon.FromHandle(shinfo.hIcon);
                FileStream fileStream 
    = new FileStream("E:\\1.ico",FileMode.Create);
                myIcon.Save(fileStream);
                fileStream.Close();
            } 
        }
    }
  • 相关阅读:
    网易云信流媒体服务端架构设计与实现
    从零开始搭建创业公司后台技术栈
    协程(coroutine)简介
    微服务的简介和技术栈
    分布式系统中最容易被忽视的六大“暗流”
    分布式架构的演进
    全网最详尽的负载均衡原理图解
    图解 | 搞定分布式,程序员进阶之路
    Enterprise Library 3.0体验(4):Validation Application Block与ASP.NET的集成
    Enterprise Library 3.0 发布
  • 原文地址:https://www.cnblogs.com/wpf123/p/2052877.html
Copyright © 2020-2023  润新知