欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VC++實(shí)現(xiàn)添加文件關(guān)聯(lián)的方法示例

 更新時間:2017年08月28日 11:22:14   作者:zwcwu31  
這篇文章主要介紹了VC++實(shí)現(xiàn)添加文件關(guān)聯(lián)的方法,涉及VC++針對注冊表的寫入與VC事件響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了VC++實(shí)現(xiàn)添加文件關(guān)聯(lián)的方法。分享給大家供大家參考,具體如下:

// 檢測文件關(guān)聯(lián)情況
// strExt: 要檢測的擴(kuò)展名(例如: ".txt")
// strAppKey: ExeName擴(kuò)展名在注冊表中的鍵值(例如: "txtfile")
// 返回TRUE: 表示已關(guān)聯(lián),F(xiàn)ALSE: 表示未關(guān)聯(lián)
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;
}
//---------------------------------------------------------------------------
// 注冊文件關(guān)聯(lián)
// strExe: 要檢測的擴(kuò)展名(例如: ".txt")
// strAppName: 要關(guān)聯(lián)的應(yīng)用程序名(例如: "C:\MyApp\MyApp.exe")
// strAppKey: ExeName擴(kuò)展名在注冊表中的鍵值(例如: "txtfile")
// strDefaultIcon: 擴(kuò)展名為strAppName的圖標(biāo)文件(例如: "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: 在此添加控件通知處理程序代碼
  //使用這兩個函數(shù)進(jìn)行關(guān)聯(lián)的示例代碼
  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++程序設(shè)計有所幫助。

相關(guān)文章

  • C++的try塊與異常處理及調(diào)試技術(shù)實(shí)例解析

    C++的try塊與異常處理及調(diào)試技術(shù)實(shí)例解析

    這篇文章主要介紹了C++的try塊與異常處理及調(diào)試技術(shù)實(shí)例解析,有助于讀者加深對try塊調(diào)試技術(shù)的認(rèn)識,需要的朋友可以參考下
    2014-07-07
  • c語言:金幣陣列的問題

    c語言:金幣陣列的問題

    本文介紹了關(guān)于c語言:金幣陣列的問題,需要的朋友可以參考一下
    2013-03-03
  • 使用OpenGL繪制Bezier曲線

    使用OpenGL繪制Bezier曲線

    這篇文章主要為大家詳細(xì)介紹了使用OpenGL繪制Bezier曲線的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語言實(shí)現(xiàn)大頂堆的示例代碼

    C語言實(shí)現(xiàn)大頂堆的示例代碼

    最大堆,又稱大根堆(大頂堆)是指根結(jié)點(diǎn)(亦稱為堆頂)的關(guān)鍵字是堆里所有結(jié)點(diǎn)關(guān)鍵字中最大者,屬于二叉堆的兩種形式之一。本文將用C語言實(shí)現(xiàn)大頂堆,感興趣的可以了解一下
    2022-07-07
  • 學(xué)好C++必須做到的50條 絕對經(jīng)典!

    學(xué)好C++必須做到的50條 絕對經(jīng)典!

    學(xué)好C++必須做到的50條,絕對經(jīng)典!想要學(xué)好C++的朋友一定要認(rèn)真閱讀本文,更要做到以下50條
    2016-09-09
  • C語言實(shí)現(xiàn)通訊錄系統(tǒng)

    C語言實(shí)現(xiàn)通訊錄系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)通訊錄系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C語言中邏輯運(yùn)算符與條件運(yùn)算符的學(xué)習(xí)教程

    C語言中邏輯運(yùn)算符與條件運(yùn)算符的學(xué)習(xí)教程

    這篇文章主要介紹了C語言中邏輯運(yùn)算符與條件運(yùn)算符的學(xué)習(xí)教程,條件運(yùn)算符問號即三目運(yùn)算符使用起來十分方便,需要的朋友可以參考下
    2016-04-04
  • C/C++實(shí)現(xiàn)圖形學(xué)掃描線填充算法

    C/C++實(shí)現(xiàn)圖形學(xué)掃描線填充算法

    這篇文章主要介紹了C/C++實(shí)現(xiàn)圖形學(xué)掃描線填充算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 用C語言實(shí)現(xiàn)三子棋

    用C語言實(shí)現(xiàn)三子棋

    這篇文章主要為大家詳細(xì)介紹了用C語言實(shí)現(xiàn)三子棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 簡單掌握C++中的函數(shù)模板

    簡單掌握C++中的函數(shù)模板

    這篇文章主要介紹了C++中的函數(shù)模板,包括函數(shù)模板的聲明和生成以及異常處理等基本知識,需要的朋友可以參考下
    2016-04-04

最新評論