Программа выводит в консоле типы и значения которые хранятся в реестре.
Как не пытаюсь либо ошибка либо выводит что то не то или ошибок нету но и ничего не выводит...
Подскажите как правильно задать lpType и lpDate что бы они выводились рядом в столбик вот часть программы где это нужно задать:
Код:
LONG lResCode;
LONG root;
char path[128];
DWORD dwValue = 256;
DWORD dwIndex = 0;
char szName[256];
HKEY hKey;
LONG lstatus;
instructions()
{
dwValue = 256;
lstatus = RegEnumValue(hKey,dwIndex,szName,&dwValue,NULL,NULL,NULL,NULL);
if (lstatus == ERROR_SUCCESS)
{
cout <<szName<<endl;
}
А вот вся программа :
Код:
#include "stdafx.h"
#undef UNICODE
#include<windows.h>
#include<iostream>
#include<iomanip>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<conio.h>
#include<deque>
#include<string>
using namespace std;
void instructions(void);
HKEY openkey(LONG, char *);
void main()
{
LONG lResCode;
LONG root;
char path[128];
DWORD dwValue = 256;
DWORD dwIndex = 0;
char szName[256];
HKEY hKey;
LONG lstatus;
instructions();
cout << endl << "Enter: ";
cin >> root;
while (root < 0 || root > 6)
{
cout << "Invalid value." << endl << endl;
instructions();
cout << endl << "Enter: ";
cin >> root;
}
cout << endl << "Enter key: ";
cin >> path;
cout<<endl;
hKey = openkey(root, path);
cout<<"Keys: "<< endl << endl;
do
{
dwValue = 256;
lstatus = RegEnumValue(hKey,dwIndex,szName,&dwValue,NULL,NULL,NULL,NULL);
if (lstatus == ERROR_SUCCESS)
{
cout <<szName<<endl;
}
dwIndex++;
}
while(lstatus != ERROR_NO_MORE_ITEMS);
RegCloseKey(hKey);
getchar();
getchar();
}
void instructions()
{
cout <<
"To select HKEY_CLASSES_ROOT enter 1" << endl <<
"To select HKEY_CURRENT_CONFIG enter 2" << endl <<
"To select HKEY_CURRENT_USER enter 3" << endl <<
"To select HKEY_LOCAL_MACHINE enter 4" << endl <<
"To select HKEY_USERS enter 5" << endl;
}
HKEY openkey(LONG root, char *path)
{
HKEY hKey;
LONG lstatus;
switch(root) {
case 1:
lstatus = RegOpenKeyEx(HKEY_CLASSES_ROOT, TEXT(path), 0, KEY_READ, &hKey);
break;
case 2:
lstatus = RegOpenKeyEx(HKEY_CURRENT_CONFIG, TEXT(path), 0, KEY_READ, &hKey);
break;
case 3:
lstatus = RegOpenKeyEx(HKEY_CURRENT_USER, TEXT(path), 0, KEY_READ, &hKey);
break;
case 4:
lstatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT(path), 0, KEY_READ, &hKey);
break;
case 5:
lstatus = RegOpenKeyEx(HKEY_USERS, TEXT(path), 0, KEY_READ, &hKey);
break;
}
if (lstatus != ERROR_SUCCESS)
{
cout << "Could not access register (error " << GetLastError() << ")" << endl;
getchar();
exit(1);
}
return hKey;
}