社区
C#
帖子详情
C#中如何获取文件图标???
javaduke
2002-01-26 09:12:22
本人很菜,最好提供一些代码写法。一定重谢。
...全文
812
13
打赏
收藏
C#中如何获取文件图标???
本人很菜,最好提供一些代码写法。一定重谢。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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#
精美
图标
下载
一些icon
图标
共大家分享 希望对大家有帮助
C#
ListView显示磁盘目录
文件
及
图标
,右键能打开
文件
、删除
文件
(源代码)
本文主要参照http://blog.csdn.net/eastmount/article/details/27264295博客,主要是一个
C#
的Winform程序,通过TreeView显示磁盘目录“我的电脑”、“我的文档”、CDEF盘树状图及
图标
.点击不同路径在ListView控件
中
将显示具体
文件
夹下的所有
文件
详细信息.包括
文件
名、大小、类型 当用户点击
文件
鼠标右键时,会在相应
文件
下弹出菜单栏ContentMenuStrip控件,显示“打开
文件
”和“删除
文件
”.点击打开
文件
会通过电脑默认方式打开
文件
,包括txt\Office\视频mp4 avi等,当删除
文件
,
文件
会删除至回收站. 代码
中
含有详细注释,如果有不懂的可以参照上面的博客.项目采用VS2012开发,向下可能不兼容. 免费
文件
,仅供大家学习和分享.希望是你需要的东西.
C#
系统应用之TreeView控件显示树状磁盘路径并在ListView显示
文件
资源主要是结合博客文章:http://blog.csdn.net/eastmount/article/details/21241313主要讲述使用
C#
winForm实现类似于资源管理器的界面,通过TreeView控件显示"我的电脑"所有磁盘
文件
树状目录,并点击结点
文件
夹能在右边的ListView
中
显示
文件
夹
中
所有
文件
信息(名称、大小、类型).希望对大家有所帮组.采用VS2012开发,VS2012一下可能会运行出错.代码含详细注释.
提取并显示
文件
包含的
图标
提取并显示
文件
包含的
图标
# 系统应用之TreeView控件显示树状磁盘
文件
目录及加载
图标
资源主要是结合博客文章:http://blog.csdn.net/eastmount/article/details/19453107主要讲述使用
C#
winForm实现类似于资源管理器的界面,通过TreeView控件显示"我的电脑"所有磁盘
文件
树状目录,包括"我的文档",所有盘符下子目录.同时通过ImageList加载不同类型icon
图标
.希望文章对大家有所帮助.
C#
111,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章