资源描述:
《VC中自己定义的文件类型关联图标和程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC中自己定义的文件类型关联图标和程序(2011-10-1813:48:20)标签:it分类:VC/MFCCCommandLineInfocmdInfo;ParseCommandLine(cmdInfo);CStringstrFilePathName=cmdInfo.m_strFileName;得到运行程序的文件名将RegeditToSystem();加入InitInstance()函数的最后voidCMtsToolApp::RegeditToSystem(){//////////////////////////
2、////////////////////////////////////////BOOLisRegedit=true;HKEYhKEY;//定义有关的hKEY,在查询结束时要关闭//打开与路径data_Set相关的hKEY//LPCTSTRdata_Set="Software//Microsoft//WindowsNT//CurrentVersion//Accessibility//";LPCTSTRdata_Set="Software//Classes//.mtl//";//访问注册表,hKEY则保存此函数所打
3、开的键的句柄intret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY));if(ret0!=ERROR_SUCCESS)//如果无法打开hKEY,则中止程序的执行{//AfxMessageBox("错误:未在注册表中找到该键");isRegedit=false;//returnfalse;}//查询有关的数据LPBYTEowner_Get=newBYTE[80];//定义用户姓名owner_GetDWORDtype_1=REG_SZ;
4、//定义数据类型DWORDcbData_1=80;//定义数据长度longret1=::RegQueryValueEx(hKEY,"mtstool",NULL,&type_1,owner_Get,&cbData_1);if(ret1!=ERROR_SUCCESS){//AfxMessageBox("错误:无法查询注册表中该键值的内容");isRegedit=false;//returnfalse;}RegCloseKey(hKEY);////////////////////////////////////////
5、////////////////////////////////TODO:AddyourcontrolnotificationhandlercodehereCStringstrAppPath;CStringstr="mtstoolfile";HKEYhkey;if(isRegedit==false){RegCreateKey(HKEY_CLASSES_ROOT,".mtl",&hkey);RegSetValueEx(hkey,NULL,NULL,REG_SZ,(CONSTBYTE*)str.GetBuffer(s
6、tr.GetLength()),strlen(str));RegSetValueEx(hkey,"mtstool",NULL,REG_SZ,(unsignedchar*)"mtstool3.0",strlen("mtstool3.0"));RegCloseKey(hkey);GetModuleFileName(NULL,strAppPath.GetBuffer(MAX_PATH),MAX_PATH);//获取自身路径strAppPath.ReleaseBuffer();intnPos=strAppPath.Rev
7、erseFind('\');CStringiconpath;iconpath.Format(_T("%s\mtstool.ico"),strAppPath.Left(nPos));BOOLtemp=RegisterFileRelation(_T("mtstoolfile"),strAppPath,_T("mtstoolfile"),iconpath,_T("mtstoolfile"));}}BOOLCMtsToolApp::RegisterFileRelation(constCString&strExtens
8、ion, constCString&strApplicationName,constCString&strRunKey,constCString&strDefaultIcon, constCString&strDescription){ HKEYhRegeditKey;if(RegOpenKey(HKEY_CLASSES_ROOT,strExtension,&hReged