关联文件与指定程序

  • 函数类型: 自定义函数

  • 函数说明:

关联文件与指定程序


  • 代码如下:



 procedure RegisterFileType(cMyExt, cMyFileType, cMyDescription, ExeName: string;
   IcoIndex: Integer; DoUpdate: Boolean = False);
var
   Reg: TRegistry;
begin
   Reg := TRegistry.Create;
   try
    Reg.RootKey := HKEY_CLASSES_ROOT;
    Reg.OpenKey(cMyExt, True);
    // 写入自定义文件后缀
    Reg.WriteString('', cMyFileType);
    Reg.CloseKey;
    // 写入自定义的文件类型
    // 格式为:HKEY_CLASSES_ROOT\cMyExt\(Default) = 'cMyFileType'

    // 下面为该文件类型创建关联
    Reg.OpenKey(cMyFileType, True);
    Reg.WriteString('', cMyDescription);
    // 写入文件类型的描述信息
    Reg.CloseKey;

    // 下面为自定义文件类型选择图标
    // 加入键格式为 HKEY_CLASSES_ROOT\cMyFileType\DefaultIcon
    // \(Default) = 'Application Dir\Project1.exe,0'
    Reg.OpenKey(cMyFileType + '\DefaultIcon', True);
    Reg.WriteString('', ExeName + ',' + IntToStr(IcoIndex));
    Reg.CloseKey;

    // 下面注册在资源管理器中打开文件的程序
    Reg.OpenKey(cMyFileType + '\Shell\Open', True);
    Reg.WriteString('', '&Open');
    Reg.CloseKey;

    // 格式:HKEY_CLASSES_ROOT\Project1.FileType\Shell\Open\Command
    // (Default) = '"Application Dir\Project1.exe" "%1"'
    Reg.OpenKey(cMyFileType + '\Shell\Open\Command', True);
    Reg.WriteString('', '"' + ExeName + '" "%1"');
    Reg.CloseKey;

    // 最后,让资源管理器实现我们加入的文件类型,只需调用SHChangeNotify即可
    if DoUpdate then
      SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
   finally
    Reg.Free;
   end;
end;



  • 用法示例:

无 



《学习大师原创文档,请勿转载,侵权必究》





联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678