社区
C#
帖子详情
C#中如何获取文件图标???
javaduke
2002-01-26 09:12:22
本人很菜,最好提供一些代码写法。一定重谢。
...全文
876
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浏览那样,同操作系统一致的文件关联图标
{js}JavaScript
中
支持面向对象的基础
今天在研究dwr2.0的时候,突然看到了demo
中
javascript用{}创建对象的方法,很好奇,感觉非常像java
中
的map对象,而事实这是javascript
中
的Object对象而以,其
中
的key只是它的属性或者方法,value是它属性对应的值或者方法对应的实现而已,对此特别在网上找到了以下的文章,让我更多的认识了javascript的使用,且更加感兴趣了================
javascript 面向对象基础
JavaScript面向对象的实现是基于prototype 的基础,如果学过java的话,就知道一切皆对象 ,object 是所有类的父类,在JavaScript
中
也是一样,object是一切类的父类(直接或间接). 接下来就是讲解JavaScript面向对象的基础知识
【JavaScript基础 - JS高级 面向对象】个人整理笔记
JS高级 一、编程语言
中
的两大思想 面向过程、面向对象 1. 面向过程:procedure-oriented 所谓面向过程就是指在完成某件事情,首先要考虑完成该任务时所需的步骤,然后按照步骤依次执行,最终达到想要的效果。也就是说面向过程重在研究解决问题的步骤。C语言就是典型的面向过程语言 2. 面向对象:object-oriented(简写,OO) 所谓面向对象就是指在完成某件事件时,首先分析出该...
JavaScript基础----38JS面向对象-认识面向对象
html> lang="en"> charset="UTF-8"> var people = { name:"zhang3", age:30, eat:function(){ alert("人总是要吃饭的") } } // people.eat();
javascript基础篇:关于js面向对象的理解
关于js
中
面向对象的理解 面向对象编程(oop) 它是一种编程思想 (object-oriented programming ), 我们的编程或者学习其实是按照类、实例来完成的学习类的继承、封装、多态 封装 把实现一个功能的代码封装到一个函数
中
(一个类
中
),以后再想实现这个功能,只需要执行这个函数方法即可,不需要再重复的编写代码。低耦...
C#
111,129
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章