zoukankan
html css js c++ java
如何获取文件在系统中的图标?
public
class
SysIO2
{
public
SysIO2()
{
}
private
const
uint
SHGFI_ICON
=
0x100
;
private
const
uint
SHGFI_LARGEICON
=
0x0
;
private
const
uint
SHGFI_SMALLICON
=
0x1
;
public
const
uint
SHGFI_USEFILEATTRIBUTES
=
0x10
;
[DllImport(
"
kernel32.dll
"
)]
internal
static
extern
void
ExitProcess(
int
a);
[DllImport(
"
shell32.dll
"
)]
private
static
extern
IntPtr SHGetFileInfo(
string
pszPath,
uint
dwFileAttributes,
ref
SHFILEINFO psfi,
uint
cbSizeFileInfo,
uint
uFlags);
[StructLayout(LayoutKind.Sequential)]
private
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;
}
/**/
///
<summary>
///
获取指定文件(或者扩展名)和系统关联的小图标
///
</summary>
///
<param name="strExtension">
文件名,或者文件扩展名(.bmp等等)
</param>
///
<returns></returns>
internal
static
Icon GetSmallIcon(
string
strExtension)
{
string
strFileName
=
Path.GetExtension(strExtension);
if
(strFileName
==
""
)
{
strFileName
=
strExtension;
}
IntPtr hImgSmall;
SHFILEINFO shinfo
=
new
SHFILEINFO();
hImgSmall
=
SHGetFileInfo(strFileName,
0
,
ref
shinfo, (
uint
)Marshal.SizeOf(shinfo), SHGFI_ICON
|
SHGFI_SMALLICON
|
SHGFI_USEFILEATTRIBUTES);
Icon myIcon
=
System.Drawing.Icon.FromHandle(shinfo.hIcon);
return
myIcon;
}
/**/
///
<summary>
///
获取指定文件(或者扩展名)和系统关联的大图标
///
</summary>
///
<param name="strExtension">
文件名,或者文件扩展名(.bmp等等)
</param>
///
<returns></returns>
internal
static
Icon GetLargeIcon(
string
strExtension)
{
string
strFileName
=
Path.GetExtension(strExtension);
if
(strFileName
==
""
)
{
strFileName
=
strExtension;
}
IntPtr hImgLarge;
SHFILEINFO shinfo
=
new
SHFILEINFO();
hImgLarge
=
SHGetFileInfo(strFileName,
0
,
ref
shinfo, (
uint
)Marshal.SizeOf(shinfo), SHGFI_ICON
|
SHGFI_LARGEICON
|
SHGFI_USEFILEATTRIBUTES);
Icon myIcon
=
System.Drawing.Icon.FromHandle(shinfo.hIcon);
return
myIcon;
}
}
查看全文
相关阅读:
linux2.6.37内核接两个硬盘导致读写效率变低的问题
使用kprobes查看内核内部信息
linux下内存大小、起始地址的解析与修改
docker fastadmin
JAVAEE——BOS物流项目11:在realm中授权、shiro的方法注解权限控制、shiro的标签权限控制、总结shiro的权限控制方式、权限管理
mysql 错误解决:Plugin 'FEDERATED' is disabled. /usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作
错误解决:HibernateSystemException-HHH000142: Javassist Enhancement failed
JAVAEE——BOS物流项目09:业务受理需求分析、创建表、实现自动分单、数据表格编辑功能使用方法和工作单快速录入
JAVAEE——BOS物流项目08:配置代理对象远程调用crm服务、查看定区中包含的分区、查看定区关联的客户
原文地址:https://www.cnblogs.com/dreign/p/627146.html
最新文章
Linux编译错误集
转:A10/A20 Bootloader加载过程分析
创龙开发板资料更新处
芯片
[资料] 常见的IC芯片解密方法与原理解析!
国产芯片替代进口芯片是必然的
国产芯片展销平台,带你国产替代一步到位
18-基于双TMS320C6678 DSP的3U VPX的信号处理平台
10-基于TMS320C6678+XC7K325T的6U CPCI Full Camera Link图像处理平台
8-基于双TMS320C6678 + XC7K420T的6U CPCI Express高速数据处理平台
热门文章
6-基于TMS320C6678、FPGA XC5VSX95T的6U CPCI 8路光纤信号处理卡
国产芯片展示
5-基于TMS320C6678+XC7K325T的6U CPCIe高性能处理平台
linux内核中的每cpu变量
Linux测量kernel子模块加载时间的方法
Linux 性能监测:Network
Linux 性能监测:IO
Linux 性能监测:Memory
Linux 性能监测:CPU
Linux 性能监测:介绍
Copyright © 2011-2022 走看看