当前位置:首页 > 开发教程 > C++教程 >

读取注册表详解

时间:2013-09-18 11:26 来源: 作者: 收藏

2345软件教程,为您打造全面的软件教程手册,无论是新奇小软件的操作还是专业软件的使用技巧,2345软件教程都会为您解疑释惑。

核心提示:c++读取注册表详解,以下是相关代码分享给大家!


1.读注册表

// 读取注册表

CString ReadRegisteTable(CString root,CString path, CString key)

{

HKEY hAppKey;

LPCTSTR WINDS_SERVICE_REGISTRY_KEY=path;

LPCTSTR DATA_FILE_SUB_KEY=key;

char szDataFile[80];

if(root=="HKEY_LOCAL_MACHINE")

{

if (ERROR_SUCCESS == RegOpenKeyEx (

HKEY_LOCAL_MACHINE,

WINDS_SERVICE_REGISTRY_KEY,

0,

KEY_READ,

&hAppKey))

{

ULONG cbSize = MAX_PATH*sizeof(TCHAR);

DWORD dwFlag = RegQueryValueEx (

hAppKey,

DATA_FILE_SUB_KEY,

NULL,

NULL,

(LPBYTE)szDataFile,&cbSize);

RegCloseKey (hAppKey);

if (ERROR_SUCCESS == dwFlag)

{

CString strDate=szDataFile; //MessageBox(strDate);

if(strDate.GetLength()>0) return strDate;

else return "";

}

return "";

}

}

if(root=="HKEY_CURRENT_USER")

{

if (ERROR_SUCCESS == RegOpenKeyEx (

HKEY_CURRENT_USER,

WINDS_SERVICE_REGISTRY_KEY,


0,

KEY_READ,

&hAppKey))

{

ULONG cbSize = MAX_PATH*sizeof(TCHAR);

DWORD dwFlag = RegQueryValueEx (

hAppKey,

DATA_FILE_SUB_KEY,

NULL,

NULL,

(LPBYTE)szDataFile,&cbSize);

RegCloseKey (hAppKey);

if (ERROR_SUCCESS == dwFlag)

{

CString strDate=szDataFile; //MessageBox(strDate);

if(strDate.GetLength()>0) return strDate;

else return "";

}

return "";

}

}

return "";

}[nextqage]

2.写注册表

// 修改注册表

BOOL ModifyRegisteTable(CString root,CString path, CString key, CString value)

{

HKEY hAppKey;

DWORD dwDisposition = MAX_PATH*sizeof(TCHAR);

LPCTSTR WINDS_SERVICE_REGISTRY_KEY=path;

LPCTSTR DATA_FILE_SUB_KEY=key;

char szDataFile[80]; strcpy(szDataFile,value);

if(root=="HKEY_LOCAL_MACHINE")

{

if (ERROR_SUCCESS != RegCreateKeyEx (

HKEY_LOCAL_MACHINE,

WINDS_SERVICE_REGISTRY_KEY,

0,

NULL,

REG_OPTION_NON_VOLATILE,

KEY_WRITE,

NULL,

&hAppKey,

&dwDisposition))

{

return false;

}

else

{

if (ERROR_SUCCESS != RegSetValueEx (hAppKey,

DATA_FILE_SUB_KEY,

0,

REG_SZ,

(LPBYTE)szDataFile,

(lstrlen (szDataFile)+1)*sizeof(TCHAR)))

{

return false;

}

RegCloseKey (hAppKey);

}

}

if(root=="HKEY_CURRENT_USER")

{

if (ERROR_SUCCESS != RegCreateKeyEx (

HKEY_CURRENT_USER,

WINDS_SERVICE_REGISTRY_KEY,

0,

NULL,

REG_OPTION_NON_VOLATILE,

KEY_WRITE,

NULL,

&hAppKey,

&dwDisposition))

{

return false;

}

else

{

if (ERROR_SUCCESS != RegSetValueEx (hAppKey,

DATA_FILE_SUB_KEY,

0,

REG_SZ,

(LPBYTE)szDataFile,

(lstrlen (szDataFile)+1)*sizeof(TCHAR)))

{

return false;

}

RegCloseKey (hAppKey);

}

}

return true;

}




上一篇:MFC窗体过程

C++教程阅读排行

最新文章