zoukankan      html  css  js  c++  java
  • 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();
            } 
        }
    }
  • 相关阅读:
    跨域资源共享 CORS 详解
    Vue.js 与 Laravel 分离
    Laravel 5.4+Vue.js 初体验:Laravel下配置运行Vue.js
    移动端web及app设计尺寸
    另辟蹊径:vue单页面,多路由,前进刷新,后退不刷新
    vue2.0 keep-alive最佳实践
    教你用Cordova打包Vue项目
    oracle_数据处理
    oracle_集合函数
    oaracel 函数_行转列
  • 原文地址:https://www.cnblogs.com/zhangtao/p/2027246.html
Copyright © 2011-2022 走看看