在程序里怎么关联一个文件用特定的程序打开?
写注册表就完了,简单示例:
不过你的程序记得要支持参数
//sFileExt:文件后缀,如:'.readme'
//sFileType:文件后缀对应说明,如:'readme.files'
procedure RegFiles(sFileExt,sFileType: String);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey(sFileExt, True);
Reg.WriteString('', sFileType);
Reg.CloseKey;
Reg.OpenKey(sFileType, True);
Reg.WriteString('', '说明文件');//说明
Reg.CloseKey;
Reg.OpenKey(sFileType + '\DefaultIcon', True);//显示图标
Reg.WriteString('', Application.ExeName + ',1');
Reg.CloseKey;
Reg.OpenKey(sFileType + '\Shell\Open', True);//打开操作
Reg.WriteString('', '&Open');
Reg.CloseKey;
Reg.OpenKey(sFileType + '\Shell\Open\Command', True);//打开文件命令
Reg.WriteString('', '"' + Application.ExeName + '" "%1"');
Reg.CloseKey;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);//刷新一下系统
finally
Reg.Free;
end;
end;
//删除关联,sKey:把前面设定的文件后缀和文件后缀对应说明都删掉
procedure TfrmMain.DelRegFile(sKey : String);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.DeleteKey(sKey);
finally
Reg.Free;
end;
end;
全文:http://book.77169.org/data/web5304/20050228/20050228__3306827.html
附:
如何实现文件关联(delphi篇)
http://huzi2010.blog.163.com/blog/static/4687424320106213458120/
//delphi 注册表 关联文件 HKEY—CLASSES—ROOT
//delphi 注册表 关联文件 HKEY—CLASSES—ROOT WriteString