国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

VC++實現添加文件關聯的方法示例

2020-01-26 13:56:41
字體:
來源:轉載
供稿:網友

本文實例講述了VC++實現添加文件關聯的方法。分享給大家供大家參考,具體如下:

// 檢測文件關聯情況// strExt: 要檢測的擴展名(例如: ".txt")// strAppKey: ExeName擴展名在注冊表中的鍵值(例如: "txtfile")// 返回TRUE: 表示已關聯,FALSE: 表示未關聯BOOL CheckFileRelation(const char *strExt, const char *strAppKey){  int nRet=FALSE;  HKEY hExtKey;  char szPath[_MAX_PATH];  DWORD dwSize=sizeof(szPath);  if(RegOpenKey(HKEY_CLASSES_ROOT,strExt,&hExtKey)==ERROR_SUCCESS)  {    RegQueryValueEx(hExtKey,NULL,NULL,NULL,(LPBYTE)szPath,&dwSize);    if(_stricmp(szPath,strAppKey)==0)    {      nRet=TRUE;    }    RegCloseKey(hExtKey);    return nRet;  }  return nRet;}//---------------------------------------------------------------------------// 注冊文件關聯// strExe: 要檢測的擴展名(例如: ".txt")// strAppName: 要關聯的應用程序名(例如: "C:/MyApp/MyApp.exe")// strAppKey: ExeName擴展名在注冊表中的鍵值(例如: "txtfile")// strDefaultIcon: 擴展名為strAppName的圖標文件(例如: "C:/MyApp/MyApp.exe,0")// strDescribe: 文件類型描述void RegisterFileRelation(char *strExt, char *strAppName, char *strAppKey, char *strDefaultIcon, char *strDescribe){  char strTemp[_MAX_PATH];  HKEY hKey;  RegCreateKey(HKEY_CLASSES_ROOT,strExt,&hKey);  RegSetValue(hKey,"",REG_SZ,strAppKey,strlen(strAppKey)+1);  RegCloseKey(hKey);  RegCreateKey(HKEY_CLASSES_ROOT,strAppKey,&hKey);  RegSetValue(hKey,"",REG_SZ,strDescribe,strlen(strDescribe)+1);  RegCloseKey(hKey);  sprintf(strTemp,"%s//DefaultIcon",strAppKey);  RegCreateKey(HKEY_CLASSES_ROOT,strTemp,&hKey);  RegSetValue(hKey,"",REG_SZ,strDefaultIcon,strlen(strDefaultIcon)+1);  RegCloseKey(hKey);  sprintf(strTemp,"%s//Shell",strAppKey);  RegCreateKey(HKEY_CLASSES_ROOT,strTemp,&hKey);  RegSetValue(hKey,"",REG_SZ,"Open",strlen("Open")+1);  RegCloseKey(hKey);  sprintf(strTemp,"%s//Shell//Open//Command",strAppKey);  RegCreateKey(HKEY_CLASSES_ROOT,strTemp,&hKey);  sprintf(strTemp,"%s /"%%1/"",strAppName);  RegSetValue(hKey,"",REG_SZ,strTemp,strlen(strTemp)+1);  RegCloseKey(hKey);}

用法如下:

void CguanlianDlg::OnBnClickedOk(){  // TODO: 在此添加控件通知處理程序代碼  //使用這兩個函數進行關聯的示例代碼  char strExt[10] = ".zwcTxt";  char strAppKey[30] = "Windows.zwcTxt.1.0";  BOOL relationExists = CheckFileRelation(strExt, strAppKey);  if(!relationExists)  {    char strAppName[MAX_PATH + 1] = "E://Desktop//Temp//GMTools.exe";    char strDefaultIcon[MAX_PATH + 1] = "";    char strDescribe[100] = "WellTest Interpretation Files";    RegisterFileRelation(strExt, strAppName, strAppKey, strDefaultIcon, strDescribe);  }}

希望本文所述對大家VC++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 旌德县| 当雄县| 南充市| 宁海县| 同心县| 建瓯市| 闵行区| 晋州市| 玛纳斯县| 鄂州市| 锡林浩特市| 长治市| 庆安县| 四川省| 临洮县| 承德县| 宣武区| 祁连县| 宽甸| 贵州省| 临泉县| 安溪县| 北票市| 武邑县| 赣州市| 阳东县| 虞城县| 荣成市| 伊川县| 张家川| 长治县| 信丰县| 板桥市| 新密市| 封丘县| 阿荣旗| 平远县| 环江| 桂林市| 汽车| 长乐市|