请问如何使得某后缀名的文件关联到程序?
并该文件的图标为该程序的图标?
谢谢!

解决方案 »

  1.   

    非常方便的,用TRegistry类来操作注册表,如注册".abc"文件
    1. 在HKEY_CLASSES_ROOT下建立一个".abc"主键,
    2. 在这个键的默认里设置一个值,如:"ABCFile",随便的
    3. 在HKEY_CLASSES_ROOT下建立一个"ABCFile"主键,必须同上面一样
    4. 在ABCFile下建立一个"Shell"主键
    5. 在"Shell"下建立一个"Open"主键
    6. 在"Open"下建立一个"Command"主键
    7. 设置Command主键的默认值为这个文件类型关联的程序全路径,加上" %1"uses
      Registry;
    procedure RegFile(FileExt, FileDisc, ExeFileName: string; IconIndex: integer);
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      try
        Reg.RootKey := HKEY_CLASSES_ROOT;
        Reg.OpenKey(FileExt, true);
        Reg.WriteString('', FileDisc');
        Reg.CloseKey;    Reg.OpenKey('\' + FileDisc + '\Shell\Open\Command', true);
        Reg.WriteString('', '"' + ExeFileName + '" %1');
        Reg.CloseKey(    Reg.OpenKey('\' + FileDisc + '\DefaultIcon', true);  //注册文件图标
        Reg.WriteString('', '"' + ExeFileName + '",' + IntToStr(IconIndex));
        Reg.CloseKey;
      finally
        Reg.Free;
      end;
    end;使用:
        RegFile('.Txt', 'TxtFile', 'c:\winnt\notepad.exe', 0);