C 语言 注册表操作问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 19:50:53
很棘手
初学注册表操作

我想获得注册表某一位置 如启动项 里面的所有信息 该怎么写
RegQueryValueEx 函数 好像要知道 具体键值的NAME 才可以吧
可是在不知道的时候怎么来遍历得到 所有的值;
只要说个方法就好
得到值 怎么开数组存 要开多大为宜?
有代码说明的 提高50分
如果能说出下面哪里有问题 分就是他的了 我看了半天比较晕

这是我的项目里的一段代码,功能和你的要求一样,希望对你有帮助。m_list.DeleteAllItems(); HKEY hkey = NULL; LPCTSTR lpszSubKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; LONG ret = ERROR_SUCCESS; ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE,lpszSubKey,0,KEY_ALL_ACCESS,&hkey); if(ret != ERROR_SUCCESS) { RegCloseKey(hkey); return ; } DWORD dwIndex = 0; char *lpValueName = new char[50]; memset(lpValueName,0,50); DWORD dwSize = 50; DWORD dwType = REG_SZ; BYTE *lpData = new BYTE[256]; memset(lpData,0,256); DWORD lpcbData= 256; int nItem = 0; while(ERROR_NO_MORE_ITEMS != RegEnumValue(hkey, dwIndex, lpValueName, &dwSize, NULL, NULL, lpData, &lpcbData)) { dwIndex++; dwSize = 50; lpcbData = 256; m_list.InsertItem(nItem,(LPCTSTR)lpValueName); m_list.SetItemText(nItem,1,(LPCTSTR)lpData); m_list.SetItemText(nItem,2,_T("注册表")); m_list.SetItemText(nItem,3,"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); nItem ++; } ///////////////////////