社区
C#
帖子详情
C#中如何获取文件图标???
javaduke
2002-01-26 09:12:22
本人很菜,最好提供一些代码写法。一定重谢。
...全文
833
13
打赏
收藏
C#中如何获取文件图标???
本人很菜,最好提供一些代码写法。一定重谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
javaduke
2002-01-31
打赏
举报
回复
我使用上面的SHGetFileInfo调用图标时候正常操作。但是往往在添加一个文件后*.html文件取图标不正常。返回的是不识别图标。不知道为什么。
ulit
2002-01-30
打赏
举报
回复
我用WINCV查的时候,在System.Drawing.Icon 有一个ICON类呀,这个类用来干嘛的?
zhaixd
2002-01-30
打赏
举报
回复
还有,我想知道不用Api函数能实现吗?
zhaixd
2002-01-30
打赏
举报
回复
应该可以不调用icon.Dispose,不是有垃圾收集器的吗
回 : 回复人: ulit(如歌) (2002-1-29 20:11:09) 得0分
CF.Win32Api 这一组件在哪?能不能public出来呀?拜托!!!
我很想知道!!
CF是CForce自己创建的一个组件,大概是用来引用Api函数的
zhaixd
2002-01-30
打赏
举报
回复
ICON类就是表示一个图标,你说图标是用来干什么的呢?呵呵
javaduke
2002-01-30
打赏
举报
回复
函数定义如下:
[StructLayout(LayoutKind.Sequential)]
public struct SHFileInfo
{
public IntPtr hIcon;
public int iIcon;
public uint dwAttribs;
[MarshalAs(UnmanagedType.LPStr, SizeConst=260)]
public string pszDisplayName;
[MarshalAs(UnmanagedType.LPStr, SizeConst=80)]
public string pszTypeName;
};
public enum SHGFI{SmallIcon = 0x00000001,LargeIcon = 0x00000000,ICON=0x000000100,DISPLAYNAME=0x000000200,TYPENAME=0x000000400,SysIconIndex=0x00004000,UseFileAttributes = 0x00000010}
[DllImport("shell32")]
static extern IntPtr SHGetFileInfo(string pszPath,uint dwAttribs,out SHFileInfo lpfi,int cb,SHGFI flags);
通过下面得到ICON
SHFileInfo fileiconinfo=new SHFileInfo();
SHGetFileInfo(filename,0,out fileiconinfo,Marshal.SizeOf(fileiconinfo),SHGFI.ICON|SHGFI.SmallIcon);
Icon thefileicon=Icon.FromHandle(fileiconinfo.hIcon);
绝对可以,已经试验成功。不过Icon用过后是否应该调用icon.dispose(),我尚不大清楚。
javaduke
2002-01-29
打赏
举报
回复
在C#中调用上述两个方法的代码是什么,我总搞不定。marshal如何用?
ulit
2002-01-29
打赏
举报
回复
CF.Win32Api 这一组件在哪?能不能public出来呀?拜托!!!
我很想知道!!
CForce
2002-01-29
打赏
举报
回复
还是自己解决了,CF.Win32Api是我刚写好的一个组件,把它引入后可以直接调用api,当然你也可以自己声明。现在在试用(alpha),很快就发给大家试用了(bate)。
下面是我写的代码,调用成功。(哎,又省300分了)
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
int hicon=CF.Win32Api.ExtractIcon((int)this.Handle,"c:\\windows\\System32\\shell32.dll",0);
int hdc=(int)this.CreateGraphics().GetHdc();
CF.Win32Api.DrawIcon(hdc,10,10,hicon);
}
zhaixd
2002-01-28
打赏
举报
回复
1.用SHGetFileInfo SDK函数
:: OnDraw(CDC *pDC)
{
if(:: SHGetFileInfo( _T("c:\\windows\\notepad.exe"),0,&stFileInfo,
sizeof(stFileInfo),SHGFI_ICON) )
{ pDC->DrawIcon(10,10,stFileInfo.hIcon);
}
}
2.用ExtractIcon SDK函数
OnDraw(CDC *pDC)
{
HICON hIcon = ::ExtractIcon(AFXGetInstanceHandle(),
_T("c:\\windows\\notepad.exe"),0);
if(hIcon && hIcon!=(HICON)-1)
pDC -> DrawIcon(10,10,hIcon);
}
这两种方法都能提取notepad.exe的图标。
不过,你大概是想知道.Net FrameWork中有什么办法
我查了相当长的时间,试了很多方法,都不成功
有一点很奇怪,.Net的FileInfo类与DirectoryInfo类均没有与图标相关的属性
Jneu
2002-01-26
打赏
举报
回复
使用ExtractIconEX API函数从文件中提取图标,并返回图标句柄,然后利用该句柄,使用DrawIcon函数将图标绘制到目标设备中。最后清除句柄以释放系统资源。
CForce
2002-01-26
打赏
举报
回复
天啊!怎么这么巧啊,我正想问这个问题!
我想编个小软件把xp的shell32.dll的图解出来,太漂亮了!(不要叫我用现成的软件)
Jneu(沧海桑田):
就是调用不了啊,不知道为什么,ExtractIconEX,你试试,成功了贴出来啊!谢谢~~
还有mciSendCommand(),我没办法调用成功,如果谁成功调用这两函数,我也给300分!
加起来600分啊~~!
javaduke
2002-01-26
打赏
举报
回复
可是我想获得同IE浏览那样,同操作系统一致的文件关联图标
icon
c#
精美
图标
下载
首先,
C#
中
的
图标
通常用于窗口应用程序、桌面快捷方式、菜单项、按钮等,通过`.ico`
文件
格式进行存储。`.ico`是一种特殊的图像
文件
格式,它可以包含多个尺寸和颜色深度的图像,以便在不同分辨率和设备上显示。在
C#
中
...
C#
ListView显示磁盘目录
文件
及
图标
,右键能打开
文件
、删除
文件
(源代码)
本文主要参照http://blog.csdn.net/eastmount/article/details/27264295博客,主要是一个
C#
的Winform程序,通过TreeView显示磁盘目录“我的电脑”、“我的文档”、CDEF盘树状图及
图标
.点击不同路径在ListView控件
中
将...
C#
系统应用之TreeView控件显示树状磁盘路径并在ListView显示
文件
http://blog.csdn.net/eastmount/article/details/21241313主要讲述使用
C#
winForm实现类似于资源管理器的界面,通过TreeView控件显示"我的电脑"所有磁盘
文件
树状目录,并点击结点
文件
夹能在右边的ListView
中
显示...
提取并显示
文件
包含的
图标
本话题主要聚焦于如何从
文件
中
提取并显示这些内含的
图标
,这对于开发者来说是一项基础但重要的技能。 首先,我们需要了解
图标
是如何存储在
文件
中
的。大多数情况下,
图标
是以资源的形式存在于可执行
文件
(如.exe或....
# 系统应用之TreeView控件显示树状磁盘
文件
目录及加载
图标
资源主要是结合博客文章:http://blog.csdn.net/eastmount/article/details/19453107主要讲述使用
C#
winForm实现类似于资源管理器的界面,通过TreeView控件显示"我的电脑"所有磁盘
文件
树状目录,包括"我的文档",所有...
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章