如何进行自定义文件格式和自编程序相关联?

sincostan 2002-08-29 03:46:02
我用BCB开发自己的程序,并保存相关信息在自定义文件里,并给一个图标,以后双击该文件时就可以自动用我的程序打开该文件,这个怎么实现?
(我以前用VC按照书的例子做过,但现在想不起来了。我喜欢BCB)
...全文
40 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sincostan 2002-08-29
  • 打赏
  • 举报
回复
先谢谢!
回去试试,然后结之
gfh21cn 2002-08-29
  • 打赏
  • 举报
回复
GetModuleFileName(HInstance,filename,40);
if(!regfile("sc","设计工程",filename,filename))
gfh21cn 2002-08-29
  • 打赏
  • 举报
回复
从程序参数里获得文件名称
ParamCount()
ParamStr(0)
gfh21cn 2002-08-29
  • 打赏
  • 举报
回复
bool __fastcall Tmainform::regfile(AnsiString filepostfix, AnsiString filetype, AnsiString apppath, AnsiString iconpath)
{
TRegistry *reg=new TRegistry();
reg->RootKey=HKEY_LOCAL_MACHINE;
if(!reg->OpenKey(AnsiString("\\Software\\CLASSES\\")+AnsiString(".")+filepostfix,true))
return false;
AnsiString filekeyname=filepostfix+AnsiString("_conch_file");
reg->WriteString("",filekeyname);
reg->RootKey=HKEY_LOCAL_MACHINE;
if(!reg->OpenKey(AnsiString("\\Software\\CLASSES\\")+filekeyname,true))
return false;
reg->WriteString("",filetype);
reg->RootKey=HKEY_LOCAL_MACHINE;
if(!reg->OpenKey(AnsiString("\\Software\\CLASSES\\")+filekeyname+AnsiString("\\shell")+AnsiString("\\open")+AnsiString("\\command"),true))
return false;
reg->WriteString("",AnsiString("\"")+apppath+AnsiString("\"")+AnsiString("%1"));
if(iconpath.IsEmpty())
return true;
reg->RootKey=HKEY_LOCAL_MACHINE;
if(!reg->OpenKey(AnsiString("\\Software\\CLASSES\\")+filekeyname+AnsiString("\\DefaultIcon"),true))
return false;
reg->WriteString("",iconpath);
reg->CloseKey();
delete reg;
return true;
}

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧