1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > VC注册表写入和读取字符串

VC注册表写入和读取字符串

时间:2019-07-15 08:42:21

相关推荐

VC注册表写入和读取字符串

关于注册表读写的文章网上有很多,但是真的要用到的时候发现很难找到直接向注册表读写Cstring字符串的文章

void CTestDlg::WirteREG(void){int nIndex=1;Cstring strr1.Format("%i,%i,%i",1,2,3);Cstring strr.Format("CmSet%i",nIndex);HKEY hKey = nullptr;//创建成功,将得到hKey,一个注册表句柄,用于下面操作注册表if (ERROR_SUCCESS != RegCreateKey(HKEY_CURRENT_USER, TEXT("SoftWare\\Test\\set"), &hKey)){AfxMessageBox(TEXT("创建注册表失败"));return;}//写入注册表 //类型 //名称 //字符个数//只能写入一个valueif (ERROR_SUCCESS != RegSetValue(hKey,nullptr,REG_SZ,TEXT("Test"),4)){AfxMessageBox(TEXT("写入注册表失败"));return;}if (hKey ==nullptr){return;}LONG lRet = 0;LPSTR lpPath = (LPSTR)(LPCTSTR)strr1;//这个函数可以写入更多的Value//名称 //强制为零 //类型 //数据if (ERROR_SUCCESS != (lRet = RegSetValueEx(hKey, TEXT(strr), 0, REG_SZ, (CONST BYTE *)lpPath, strr1.GetLength()))){AfxMessageBox(TEXT("写入注册表失败Ex"));return;}AfxMessageBox(TEXT("写入注册表成功!"));RegCloseKey(hKey);}

void CTestDlg::ReadREG(void){LONG lValue = 0;//先读取数据的长度RegQueryValue(HKEY_CURRENT_USER, TEXT("SoftWare\\Test\\set"), nullptr, &lValue);TCHAR *pBuf = new TCHAR[lValue];RegQueryValue(HKEY_CURRENT_USER, TEXT("SoftWare\\Test\\set"), pBuf, &lValue);AfxMessageBox(pBuf);HKEY hKey = nullptr;DWORD dwTpye = REG_SZ;DWORD dwValue = MAX_PATH;//这个大小一定要先求出来,否则会出错(234)TCHAR data[MAX_PATH]; LONG lRet = 0;//打开注册表RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("SoftWare\\CXTest\\set"),0, KEY_ALL_ACCESS,&hKey);//RegOpenKey(HKEY_LOCAL_MACHINE, TEXT("SoftWare\\Test"), &hKey);//读注册表 //valuename//返回value类型 //数据缓存区 //缓存区大小if (ERROR_SUCCESS != (lRet = RegQueryValueEx(hKey, TEXT("CmSet1"), 0, &dwTpye, (LPBYTE)data, &dwValue))){AfxMessageBox(TEXT("读取注册表失败!"));return;}AfxMessageBox(TEXT("读取注册表成功!"));CString s;s.Format(data);sscanf(s,"%i,%i",&cc,&xx);AfxMessageBox(s);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。