Разработка приложения для чтения локального и удаленного реестра Windows

Автор: Пользователь скрыл имя, 12 Января 2012 в 09:30, курсовая работа

Описание работы

Реестр Windows – это иерархическая централизованная база данных, используемая в ОС Microsoft Windows 98, Windows CE, Windows NT и Windows 2000 для хранения сведений, необходимых для настройки операционной системы для работы с пользователями, программными продуктами и устройствами.
В реестре хранятся данные, которые необходимы для правильного функционирования Windows.

Содержание

ВВЕДЕНИЕ 3
2. Выбор и обоснование средств информационной системы 4
2.1. Требования к системе. UML диаграммы 5
2.2. Состав технических устройств, система интерфейсов 10
2.3. Способы взаимодействия пользователя с системой, организация вычислительных процессов 11
2.4. Состав информационного и программного обеспечения 12
2.4.1. Структура и форматы данных 12
2.4.2. Описание методов приложения 15
3. Заключение 16
3.1. Достоинства и недостатки разработанной информационной системы 16
3.2. Пути совершенствования разработанного программного продукта 17
3.3. Рекомендации пользователю 17
4. Используемая литература 18
Приложение. Листинг программы 19

Работа содержит 1 файл

Курсовая работа по ИСИС Смолин А.В. гр.4509.docx

— 652.20 Кб (Скачать)

    if (cValues)

    {

    TW->setRowCount(cValues);

 TE->setHtml(TE->toHtml()+"\n Number of values: "+QString::number(cValues) );

        for (i=0, retCode=ERROR_SUCCESS; i<cValues; i++)

        {

            cchValue = MAX_VALUE_NAME;

            achValue[0] = '\0';

            retCode = RegEnumValue(hKey, i,

                achValue,

                &cchValue,

                NULL,

                &dwType,

                NULL,

                NULL);

 QTableWidgetItem *newItem = new QTableWidgetItem();

            if (retCode == ERROR_SUCCESS )

            {

                TE->setHtml(TE->toHtml()+QString::number(i+1)+" " +QString::fromWCharArray(achValue)+"\n" );

                   newItem->setText(QString::fromWCharArray(achValue));

                    TW->setItem(i,0,newItem);

        QTableWidgetItem *newItem2 = new QTableWidgetItem();

        QTableWidgetItem *newItem3 = new QTableWidgetItem();

 /////////////////////////////////////////////////

        switch(dwType)

                {

                case REG_SZ:

                        {

            newItem3->setText("REG_SZ");

                                dwDataSize = MAX_VALUE_NAME;

                                TCHAR szData[MAX_VALUE_NAME];

                                if(RegQueryValueEx(hKey, achValue, NULL, NULL, (LPBYTE)szData, &dwDataSize) == ERROR_SUCCESS)

                                {

                                             newItem2->setText(QString::fromWCharArray(szData));

                                }

                                break;

                        }

                case REG_EXPAND_SZ:

                        {

                   newItem3->setText("REG_EXPAND_SZ");

                                dwDataSize = MAX_VALUE_NAME;

                                TCHAR szData[MAX_VALUE_NAME];

                                 if(RegQueryValueEx(hKey, achValue, NULL, NULL, (LPBYTE)szData, &dwDataSize) == ERROR_SUCCESS)

                                {

                                     newItem2->setText(QString::fromWCharArray(szData));

                                }

                                break;

                        }

                case REG_MULTI_SZ:

                        {

                        newItem3->setText("REG_MULTI_SZ");

                                dwDataSize = MAX_VALUE_NAME;

                            TCHAR szData[MAX_VALUE_NAME];

                                 if(RegQueryValueEx(hKey, achValue, NULL, NULL, (LPBYTE)szData, &dwDataSize) == ERROR_SUCCESS)

                                {

                                        newItem2->setText(QString::fromWCharArray(szData));

                                }

                                break;

                        }

                case REG_DWORD:

                        {

                     newItem3->setText("REG_DWORD");

                                dwDataSize = sizeof(DWORD);

                                DWORD dwData;

                                 if(RegQueryValueEx(hKey, achValue, NULL, NULL, (LPBYTE)&dwData, &dwDataSize) == ERROR_SUCCESS)

                                {

                                        char szBuff[16];

                                        char szText[32];

                                        itoa(dwData, szBuff, 16);

                                        strcpy(szText, "0x");

                                        strcat(szText, szBuff);

                                        strcat(szText, " (");

Информация о работе Разработка приложения для чтения локального и удаленного реестра Windows