|
如上图,我想获取str下的地址”C:\......”。
我的代码如下:
- //1.打开注册表
- HKEY hKey = NULL;
- long actExcl;
- actExcl = RegOpenKey(HKEY_LOCAL_MACHINE, L"SOFTWARE\\DC", &hKey);
- if (actExcl == ERROR_SUCCESS)
- {
- MessageBox(L"打开成功!");
- }
- else
- {
- MessageBox(L"打开失败!");
- }
- ////2.创建注册表
- //actExcl = RegCreateKey(HKEY_LOCAL_MACHINE, L"SOFTWARE\\DC" ,&hKey);
- //if (actExcl == ERROR_SUCCESS)
- //{
- // MessageBox(L"创建成功!");
- //}
- //else
- //{
- // MessageBox(L"创建失败!");
- //}
-
- ////3.删除注册表
- //actExcl = RegDeleteKey(HKEY_LOCAL_MACHINE, L"SOFTWARE\\DC");
- //if (actExcl == ERROR_SUCCESS)
- //{
- // MessageBox(L"删除成功!");
- //}
- //else
- //{
- // MessageBox(L"删除失败!");
- //}
- //4.查询注册表
- DWORD dwSubKeys , maxSubKeyLen , dwValueCount , maxValueNameLen , maxValueLen;
- actExcl = RegQueryInfoKey(hKey, NULL, NULL, NULL, &dwSubKeys, &maxSubKeyLen, NULL, &dwValueCount, &maxValueNameLen, &maxValueLen, NULL, NULL);
- //5.查询子键
- DWORD dwNameLen = maxSubKeyLen+1;
- TCHAR* pszName = new TCHAR[maxSubKeyLen + 1];
- for (DWORD dwIndex = 0; dwIndex < dwSubKeys; dwIndex++)
- {
- dwNameLen = 50;
- actExcl = RegEnumKeyEx(hKey, dwIndex, pszName, &dwNameLen, NULL, NULL, NULL, NULL);
- }
-
- //6.查询子项
- TCHAR * pszValue = new TCHAR[maxValueNameLen + 1];
- for (DWORD dwIndex = 0; dwIndex < dwValueCount; dwIndex++)
- {
- dwNameLen = 50;
- actExcl = RegEnumValue(hKey , dwIndex , pszValue , &dwNameLen , NULL , NULL , NULL , NULL);
- }
-
- //以下是键值的操作
- //7.查询键值
- DWORD dwType = 0;
- BYTE *ipData = new BYTE[maxValueNameLen + 1];
- ZeroMemory(ipData, maxValueNameLen + 1);
- actExcl = RegQueryValueEx(hKey, _T("str"), NULL, &dwType, ipData, &maxValueNameLen);
- CString strValue;
- strValue.Format(_T("%s"), CString(ipData));
-
- delete[]ipData;
- delete[]pszValue;
- delete[]pszName;
- RegCloseKey(hKey);
复制代码
但是格式化输出后,为啥为空呢。 |
上一篇: 今日一贴!禁止任务栏鼠标右键和恢复下一篇: 关于vc6怎么使用64位的动态链接库
|