zoukankan      html  css  js  c++  java
  • Delphi 注册文件类型 设置文件图标

     

     
     

    {-------------------------------------------------------------------------------
     @过程名:  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('shellopencommand', 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;

  • 相关阅读:
    Python量化分析,计算KDJ
    Ubuntu16.04安装Python3.6 和pip(python3 各版本切换)
    使用docker加载已有镜像安装Hyperledger Fabric v1.1.0
    Ubuntu 16.04将左侧面板置于底部
    解决Flask局域网内访问不了的问题
    Ubuntu 16.04 安装Go 1.9.2
    Ubuntu16.04下安装Hyperledger Fabric 1.0.0
    Ubuntu 16.04安装Docker-CE
    用Python抓取网页并解析
    图解python中赋值、浅拷贝、深拷贝的区别
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/5368780.html
Copyright © 2011-2022 走看看