{-------------------------------------------------------------------------------
 @过程名:  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. linux poll

    man poll: NAME poll, ppoll - wait for some event on a file descriptor SYNOPSIS #include <poll.h&g ...

  2. 什么是智能dns解析

    智能DNS解析是针对目前电信和网通互联互通不畅的问题推出的一种DNS解决方案.具体实现是:把同样的域名如test.winiis.com的A记录分别设置指向网通和电信IP,当网通的客户访问时,智能DNS ...

  3. C and C++ : Partial initialization of automatic structure

    Refer to: http://stackoverflow.com/questions/10828294/c-and-c-partial-initialization-of-automatic-st ...

  4. Ubuntu 12.04 LTS(64bit) 环境下JDK、 Eclipse、 ADT、 快捷图标

    一.在FriendlyARM,Tiny4412,,安装包下可补充: (按照手册添加openjdk-6-jdk 后) 安装JDK (Java),选择需要的JDK,或者全部安装. a) OpenJDK-6 ...

  5. bigtint;int;smallint;tinyint

    bigint对应的是Int64     [long] int对应的是Int32          [int] smallint对应的是Int16  [short] tinyint对应的是  [byte ...

  6. C#判断字符串为空的几种方法和效率判断

    C#判断字符串为空的几种方法和效率判断 string定义 1.1 string str1="":会定义指针(栈),并在内存里划一块值为空的存储空间(堆),指针指向这个空间.1.2 ...

  7. Android Fragment 真正的完全解析(上) (转载)

    原处: http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragmen ...

  8. WebForm页面运行机制

    阅读目录 开始 WebForm前台与后台的关系及运行原理 前台页面 <% @ Page Language="C#" AutoEventWireup="true&qu ...

  9. ubuntu下实现openerp 7使用nginx反正代理及绑定域名

    这里要记录一个nginx upstream实现反向代理的配置过程. 连接vps的ssh. 先安装nginx sudo apt-get install nginx 修改/etc/nginx/nginx. ...

  10. Ref相关的名词解释

    NV (NOT-VOLATILE),即非易失性,断电不会丢失的存储信息,包括生产信息.客户信息.产品信息等等. 它们都保存在不同(FLASH)分区,并根据不同的分区提供不同的接口.数据结构和管理机制. ...