http://social.msdn.microsoft.com/Forums/zh-CN/visualcshartzhchs/thread/c08fd375-e269-4c4b-af19-974e03cacee6/
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()
}
}
}
拿分了,哈哈
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)