{-------------------------------------------------------------------------------
 @过程名:  slpert -> TFm_main.SetAssociatedExec
 @作者:   Gavin
 @日期:   2004.09.08
 @功能描述:
 @参数:   FileExt, Filetype, FileDescription, MIMEType, ExecName: string
 @返回值:  Boolean
-------------------------------------------------------------------------------}
Function TFm_main.SetAssociatedExec(FileExt, Filetype, FileDescription,
 MIMEType, ExecName: String): Boolean; {修改成功,返回True,否则False}
Var
 Reg: TRegistry;
 ShFileInfo: TSHFILEINFO;
 IconIndex: integer;
Begin
 Result := False; {}
 // ShGetFileInfo(Pchar(ExecName), 0, SHFileInfo,SizeOf(SHFileInfo), SHGFI_LARGEICON or SHGFI_SYSICONINDEX or SHGFI_TYPENAME or SHGFI_SMALLICON);
  //IconIndex:=SHFileInfo.iIcon;
  //showmessage(inttostr(iconIndex));
 If (FileExt = '') Or (ExecName = '') Then
  Exit; {如果文件类型为空或者没有定义执行程序就退出,FileExt必须带″.″,如.BMP}
 Reg := TRegistry.Create;
 Try
  Reg.RootKey := HKey_Classes_Root;
  If Not Reg.OpenKey(FileExt, True) Then
   Exit; {当不能正确找到或创建FileExt键时退出,这种情况一般是注册表有错误,以下同}
  Reg.WriteString('', FileType);
  If MIMEType <> '' Then
  Begin
   Reg.WriteString('Content Type', MIMEType);
  End;
  Reg.CloseKey;
  If Not Reg.OpenKey(FileType, True) Then
   Exit;
  Reg.WriteString('', FileDescription);
  If Not Reg.OpenKey('shell\open\command', True) Then
   Exit;
  Reg.WriteString('', ExecName + ' "%1"');
  {执行程序一般都有参数,例如WinZip的“winzip32.exe ″%1″”,″%1″参数指ZIP文件的文件名。因此ExecName应视情况加入参数}
  Reg.CloseKey;
  If Not Reg.OpenKey(FileType + '\DefaultIcon', True) Then
   Exit;
  Reg.WriteString('',ExecName+' ,1');  ///ExtractFilePath(
  Reg.CloseKey;
  Result := true;
 Finally
  Reg.Free;
 End;
End;

Delphi 注册文件类型 设置文件图标的更多相关文章

  1. 三、Linux系统中的文件类型和文件扩展名

    .sock文件也是一类特殊的文件,这类文件通常用在网络之间进行数据连接,如:我们可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行通信: linux中的文件类型 文件类型介绍 Linux系 ...

  2. Delphi如何处理不同类型的文件

    参考:http://www.cnblogs.com/railgunman/articles/1800318.html 程序设计当中,我们时常遇到需要处理文件.目录及驱动器的情况,这里将对如何处理不同类 ...

  3. Eclipse为不同的文件类型设置编码格式和编辑器

    不知道大家遇到项目中编码格式不统一的情况没有,哈哈,我们就是,比如java的编码格式是GBK,html等编码是UTF-8,这样会导致很多问题,比如提交了一个UTF-8的java文件到SVN,会导致后端 ...

  4. ASP.NET应用程序的文件类型及文件夹列表

    文件类型: 1. *.aspx文件:这类文件是ASP.NET Web页面,它包括用户接口和隐藏代码. 2. *.ascx文件:这类文件是用户控件.用户控件同Web页面非常相似,但用户不能直接访问用户控 ...

  5. python 读写文件和设置文件的字符编码

    一. python打开文件代码如下: f = open("d:\test.txt", "w") 说明:第一个参数是文件名称,包括路径:第二个参数是打开的模式mo ...

  6. 【Pyhon】获取文件MIME类型,根据文件类型自定义文件后缀

    场景 下载样本,都是MD5命名的无后缀文件,需要自己手动查询然后修改文件后缀. 根据文件类型自定义后缀可以很方便地根据后缀判断用什么工具分析. 使用说明 libmagic 地址:https://pyp ...

  7. 1. [文件]- 文件类型,文件open模式

    1.文件类型:文本文件和二进制文件 硬盘中的文件保存为01010101格式,一般读取文件是把文件从硬盘中读取到内存中. 文本文件需要进行格式转换才能读取出来. 二进制文件一般用于传输 二进制文件:视频 ...

  8. python根据文件目录、文件类型和文件与当前时间差删除文件

    直接贴代码: 删除某个目录下的文件,不遍历木路下文件夹下的文件,根据时间差删除,默认7天 #!/usr/bin/python # -*- coding: gbk -*- import os impor ...

  9. Linux文件类型和文件相关命令

    文件类型 ll后可以看到文件详情: -:常规文件(内部类型是什么,用file命令) d:directory,目录文件 b:blobk device,块设备文件,支持以“block”为单位进行随机访问 ...

随机推荐

  1. Centos环境下部署游戏服务器-编译

    游戏服务器是在windows环境开发的,相关跨平台的东西在这里不谈了,只谈如何将Visual Studio 工程转换到Linux下编译.这里涉及到的软件分别为:Centos版本为6.4,Visual ...

  2. WordPress主题制作教程1:文件构成

    在最简单的情况下,一个WordPress主题由两个文件构成: index.php ------------------主模版 style.css  -------------------主样式表 以下 ...

  3. HTML5文档结构语义:页眉的header和hgroup标签使用

    HTML5提供了新的结构元素——例如header.hgroup.article.section.footer.nav等来定义网页,将使网页结构更加简洁严谨,语义更加结构化,而不用迂回通过class或i ...

  4. Card Game Cheater---hdu1528(扑克建图求二分匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1528 题意就是给有两个人有n张牌第二个人知道第一个人的牌的序列: 然后第二个人尽可能的让自己得更高的分 ...

  5. 278. First Bad Version

    题目: You are a product manager and currently leading a team to develop a new product. Unfortunately, ...

  6. MyBatis学习总结_15_定制Mybatis自动代码生成的maven插件

    ==================================================================================================== ...

  7. Android 常用时间格式转换代码

    /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { Date curren ...

  8. SQL SERVER ->> Data Compression

    最近做了一个关于数据压缩的项目,要把整个SQL SERVER服务器下所有的表对象要改成页压缩.于是趁此机会了解了一下SQL SERVER下压缩技术. 这篇文章几乎就是完全指导手册了 https://t ...

  9. hive-0.12升级成hive 0.13.1

    安装了0.12之后,听说0.13.1有许多新的特性,包括永久函数,所以想更新成0.13版的(元数据放在mysql中) 2014年8月5日实验成功 hive0.13.1的新特性 新特性详见 http:/ ...

  10. cygwin的rebaseall失败

    rebaseall: only ash or dash processes are allowed during rebasing Exit all Cygwin processes and stop ...