现在的位置: 首页 > 综合 > 正文

MFC程序与文件关联

2018年01月10日 ⁄ 综合 ⁄ 共 930字 ⁄ 字号 评论关闭

之前转载过一篇这方面的文章:VC中建立程序的关联文件【http://www.mydreamsky.tk/?p=906】,但发现用上面的方法,虽然能建立程序与文件的关联,但一旦我们的程序放在另一个目录了,就会出去很多问题。因此想从注册表的角度上来解决这个问题,因为程序关联其实就是在注册表上进行操作的。网上找了下,已经有前辈在这方面做了不少工作,甚至还有人已经将整个操作封装成了一个很好调用的类。

那个类的下载:http://download.csdn.net/detail/viviwen123/4359353。用法上面有。

再贴一段在程序中具体使用的例子:

void CDlgInstall::OnBnClickedButtonConnectapk()

{

CRegRelateExt RegRelateExt;

BOOL sign=true;

sign=RegRelateExt.Delete(“.apk”);// 删除.apk与任何程序的关联

CString appPath = “”;

AfxGetModuleFileName(theApp.m_hInstance,appPath);

CString appName = theApp.m_pszAppName;

appName += “.exe”;

CString mPath = appPath.Left(appPath.Find(appName));

CString currentExe=mPath+appName+” %1″;

sign=RegRelateExt.Set(“.apk”,currentExe);

if (sign)

{

MessageBox(“设置关联成功!”);

}

else

{

MessageBox(“设置关联失败!”);

}

}

至于在程序初始化InitInstance()时如何接收参数进行处理,就看《VC中建立程序的关联文件》【http://www.mydreamsky.tk/?p=906】这篇文章了,上面有介绍。此外,VC中建立程序的关联文件的时候不能是对话框程序,但如果想做成对话框程序的效果也是可以的,只需要在InitInstance()里未创建程序主界面之前弹出我们要显示的对话框,然后在退出对话框时return false,退出程序即可。

抱歉!评论已关闭.