绕开注册表探测文件类型

原创 2005年04月26日 17:25:00

那就是使用SHGetFileInfo函数,调用这个函数可以获得所有关于文件的信息。它有一个聪明的选项,SHGFI_USEFILEATTRIBUTES,这个选项允许你传递一个假文件名,如mumble.txt。即便文件不存在,SHGetFileInfo也能获得你要的信息。

SHFILEINFO shfi;
memset(&shfi,0,sizeof(shfi));
SHGetFileInfo("foo.bmp", 
FILE_ATTRIBUTE_NORMAL,
&shfi, sizeof(shfi),
SHGFI_ICON|SHGFI_USEFILEATTRIBUTES);

需要注意的一点是:

If SHGetFileInfo returns an icon handle in the hIcon member of the SHFILEINFO structure pointed to by psfi, you are responsible for freeing it with DestroyIcon when you no longer need it.

例子:

//CEdit m_ext;
 //CStatic m_Icon;

 LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
 {
  // TODO: Add validation code
  CString strExt;
  char temp[256] = {0};
  ::GetWindowText(m_ext,temp,256);
  strExt = temp;
  strExt.TrimLeft(".");
  CString strTemp = "nothing.";
  strTemp += strExt;
  SHFILEINFO shfi;
  memset(&shfi,0,sizeof(shfi));
  SHGetFileInfo(strTemp,
   FILE_ATTRIBUTE_NORMAL,
   &shfi,
   sizeof(shfi),
   SHGFI_ICON|SHGFI_USEFILEATTRIBUTES);
  
  DestroyIcon(m_Icon.SetIcon(shfi.hIcon));
  return 0;
 }

文件类型探测程序FileType.zip

  • 2009年10月17日 20:50
  • 77KB
  • 下载

Python 探测图片文件类型

Table of Contents 1. 探测图片类型1.1. python magic 1.2. imghdr 1.3. PIL.Image探测图片类型今天遇到一个小问题,如何探测图片的文件类型。总...

shell的逻辑运算符 探测文件类型 比较数值、字符串等

选项 表示意思 1. 关于档案与目录的侦测逻辑卷标! -f 常用!侦测『档案』是否存在 eg: if [ -f filename...

C#注册表编程示例二:在“新建”中添加自己的文件类型

下面的例子在桌面的右键快捷菜单中或在Windows资源管理器的“新建”中添加自己的文件类型。假设添加的是扩展名为“.cs”的文件,说明文件为“cs files”,默认文件的打开方式采用Windows中...

php生成文件类型

  • 2014年02月24日 11:06
  • 210KB
  • 下载

Win7系统文件类型的扩展名

  • 2014年06月13日 23:10
  • 93KB
  • 下载

[AS3]如何绕开AS3安全沙箱进行跨域加载SWF文件

转自  : http://www.89525.net/player/PlayerCodeAs/2012/0824333.html   AS3的安全沙箱的确是让人很无奈,本篇文章仅用于...

Andorid的API文件类型是CHM【热】2

  • 2010年11月26日 10:48
  • 5.42MB
  • 下载

zen_cart 文件类型分布图

  • 2011年08月02日 10:26
  • 213KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:绕开注册表探测文件类型
举报原因:
原因补充:

(最多只允许输入30个字)