C#获取应用程序图标获取后在保存成ICO文件
2011-04-25 14:17
295 查看
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, 0, ref 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();
}
}
}
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, 0, ref 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();
}
}
}
相关文章推荐
- C#获取应用程序图标获取后在保存成ICO文件
- C#获取文件格式图标关联应用程序图标
- C#项目打开/保存文件夹/指定类型文件,获取路径
- c#.net各种应用程序中获取文件路径的方法
- MFC应用实例:获取应用程序文件的图标
- C#获取双击文件用关联应用程序打开时的文件名
- 已知HICON,如何将其保存为图标文件?以及ICO文件的格式
- C# 如何使用配置文件保存应用程序里的配置数据
- 给Qt应用程序添加图标文件ico setWindowIcon
- C#项目打开/保存文件夹/指定类型文件,获取路径
- C#获取文件与文件夹默认图标[转]
- REST接口GET方法获取文件保存到本地(C#)
- WinAPI: ExtractIcon - 获取 EXE、DLL 或 ICO 文件中的图标
- 使用C#的ICON类轻松获取文件图标
- C# 获取系统文件图标
- REST接口GET方法获取文件保存到本地(C#)
- C#获取文件(磁盘驱动器)的关联图标、获取目录文件和图标
- 【MFC】获取文件的ICO图标48*48,32*32
- 已知HICON,如何将其保存为图标文件?以及ICO文件的格式
- 【转】C#中通过API调用获取文件图标