用Microsoft.Win32中的类读注册表,
在HKEY_CLASSES_ROOT下找到扩展名的键如.txt, 读出它的(默认)值,是一个string,如:
txtfile,再找到名为txtfile的键,它的子键 DefaultIcon的默认值就是图标的路径
在HKEY_CLASSES_ROOT下找到扩展名的键如.txt, 读出它的(默认)值,是一个string,如:
txtfile,再找到名为txtfile的键,它的子键 DefaultIcon的默认值就是图标的路径
解决方案 »
- 重载均与委托不匹配?
- 今天刚学文件操作流还有点不懂,望高手指点!
- treeview 已经知道一个node的text,如何定位
- 怎么才能把propertyGrid属性的值读出来
- 快速切换Tab界面时如何做到接近0延时(100分求助)?
- 请教个问题:怎样将类作为C#中的方法的参数?类似于Delphi中的类引用
- Devpress LayoutControl 隐藏右键菜单
- 各位老师 求个 Winform权限设计含数据库源代码
- 小问题在线等,如何声明一个可以跨文件使用(在同一个解决方案里)的全局变量?
- 哪儿有编程时常用的图标?如剪切、复制等的图标。
- ###关于System.Windows.Forms.PrintPreviewDialog的使用中出现的问题###UP也有分
- 关于水晶报表
public class ExtractIcon
{
[DllImport("Shell32.dll")]
private static extern int SHGetFileInfo
(
string pszPath,
uint dwFileAttributes,
out SHFILEINFO psfi,
uint cbfileInfo,
SHGFI uFlags
); [StructLayout(LayoutKind.Sequential)]
private struct SHFILEINFO
{
public SHFILEINFO(bool b)
{
hIcon=IntPtr.Zero;iIcon=0;dwAttributes=0;szDisplayName="";szTypeName="";
}
public IntPtr hIcon;
public int iIcon;
public uint dwAttributes;
[MarshalAs(UnmanagedType.LPStr, SizeConst=260)]
public string szDisplayName;
[MarshalAs(UnmanagedType.LPStr, SizeConst=80)]
public string szTypeName;
}; private ExtractIcon()
{
} private enum SHGFI
{
SmallIcon = 0x00000001,
LargeIcon = 0x00000000,
Icon = 0x00000100,
DisplayName = 0x00000200,
Typename = 0x00000400,
SysIconIndex = 0x00004000,
UseFileAttributes = 0x00000010
}
public static Icon GetIcon(string strPath,bool bSmall)
{
SHFILEINFO info = new SHFILEINFO(true);
int cbFileInfo = Marshal.SizeOf(info);
SHGFI flags;
if (bSmall)
flags = SHGFI.Icon|SHGFI.SmallIcon|SHGFI.UseFileAttributes;
else
flags = SHGFI.Icon|SHGFI.LargeIcon|SHGFI.UseFileAttributes; SHGetFileInfo(strPath, 256, out info,(uint)cbFileInfo, flags);
return Icon.FromHandle(info.hIcon);
}
}
http://support.microsoft.com/default.aspx?scid=kb;en-us;319350
好象很少扩展名有 DefaultIcon 这个子键,他们都有自己的图标,是否还有其他方法读取?