Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2013, 16:06   #1
Mediaplay
 
Регистрация: 20.11.2012
Сообщений: 3
Вопрос работа с реестром (RegEnumValue)

Программа выводит в консоле типы и значения которые хранятся в реестре.
Как не пытаюсь либо ошибка либо выводит что то не то или ошибок нету но и ничего не выводит...
Подскажите как правильно задать 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;
}
Mediaplay вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с реестром Pr1meEX Общие вопросы Delphi 0 17.06.2009 00:01
Работа с реестром Ky3Heu, Общие вопросы Delphi 1 04.05.2009 10:37
работа с реестром zetrix Безопасность, Шифрование 2 31.10.2007 12:20
работа с реестром. kozei Win Api 6 17.07.2007 13:31