再提一个问题(关于文件关联的问题)

dycdyc123 2002-05-06 10:47:02
我建立的这样的文件类型 *.dyc 与dyc.exe 程序的关联,就是说,点击 *.dyc文件会

自动调用dyc.exe 程序,dyc.exe 也正常运行, 这个实现,(dyc.exe可以打开*.dyc 文件,可以先打开dyc.exe,然后装入*.dyc文件,这个也实现)
问题:

现在,我要点击*.dyc 文件, 打开dyc.exe程序后自动装入点击的文件*.dyc,怎样实现??
...全文
31 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dycdyc123 2002-05-23
  • 打赏
  • 举报
回复
谢谢!

我不懂电脑 2002-05-06
  • 打赏
  • 举报
回复
首先需要你的dyc.exe支持命令行参数,然后在注册表中设置文件关联。
cloudred 2002-05-06
  • 打赏
  • 举报
回复
在注册表相应项添加:
程序名 -openfile %1
或者你程序里面根本没做对 -openfile的判断的话,直接写
程序名 %1
就行
cloudred 2002-05-06
  • 打赏
  • 举报
回复
附一段代码吧( TForm1::TForm1(TComponent* Owner)里添加):

//先判断是否有命令行参数传递过来,若有,则打开命令行参数指定的文件,否则
//打开最近一次打开的文件

if(ParamCount()>0 && ParamStr(1)=="-openfile")//如果命令行参数的数目大于1,表示除程序文件名自身外还有参数
{
for (int i=2;i<=ParamCount();i++)
{
strCommandParam=strCommandParam+" "+ParamStr(i);
}
strCommandParam=strCommandParam.Delete(1,1);
if(FileExists(strCommandParam)==true)//如果这个文件存在,就打开
{
OpenCMFFile(strCommandParam);
}
}
else //取最近打开的文件
{
AnsiString tmp;
tmp=ExtractFileDir(Application->ExeName); //取应用程序所在目录
tmp=tmp+"\\cmf.dat";
if (FileExists(tmp)==false)
{
FileCreate(tmp);
}


sFileList->LoadFromFile(tmp);

if(sFileList->Count>0)
{
//取最近打开的文件,如果文件存在,就打开
if (FileExists(sFileList->Strings[0])==true)
OpenCMFFile(sFileList->Strings[0]);
}
}

Lersh 2002-05-06
  • 打赏
  • 举报
回复
就是说在DOS窗口里打:dyc,exe 1.dyc,要能启动dyc并装入1.dyc才行
我来看看CB 2002-05-06
  • 打赏
  • 举报
回复
对,

13,826

社区成员

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

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