• 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;

  • 相关阅读:
    UML统一建模语言笔记
    从零开始学JavaWeb
    也谈微信小程序
    Memcached,你懂的
    一个简单的配置管理器(SettingManager)
    我的AngularJS 学习之旅
    .NET Core 跨平台
    ASP.NET Core 中间件自定义全局异常处理
    面试必考题——递归解题套路
    程序员着装指南
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/5368780.html
Copyright © 2020-2023  润新知