Разработка приложения для чтения локального и удаленного реестра 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 Кб (Скачать)

            {

               _sok->write(TwoInt(QString::fromWCharArray(achKey).size()).toAscii().data());

                _sok->write(QString::fromWCharArray(achKey).toAscii().data());

                ui->textEdit->append(TwoInt(QString::fromWCharArray(achKey).size())+" "+QString::fromWCharArray(achKey));

            }

        }

    }

    // Enumerate the key values.

    if (cValues)

    {

        _sok->write("VAL");

        _sok->write(TwoInt(SUBSize).toAscii().data());

        _sok->write(strSUB.toAscii().data());

        _sok->write(QString::number(QString::number(cValues).length()).toAscii().data());

        _sok->write(QString::number(cValues).toAscii().data());

        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);

            if (retCode == ERROR_SUCCESS )

            {

                _sok->write(TwoInt(QString::fromWCharArray(achValue).size()).toAscii().data());

                 _sok->write(QString::fromWCharArray(achValue).toAscii().data());

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

        switch(dwType)

                {

                case REG_SZ:

                        {

                                dwDataSize = MAX_VALUE_NAME;

                                TCHAR szData[MAX_VALUE_NAME];

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

                                {

                                    _sok->write(TwoInt(QString::fromWCharArray(szData).size()).toAscii().data());

                                     _sok->write(QString::fromWCharArray(szData).toAscii().data());

                                }

                                break;

                        }

                case REG_EXPAND_SZ:

                        {

                                dwDataSize = MAX_VALUE_NAME;

                                TCHAR szData[MAX_VALUE_NAME];

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

                                {

                                     _sok->write(TwoInt(QString::fromWCharArray(szData).size()).toAscii().data());

                                      _sok->write(QString::fromWCharArray(szData).toAscii().data());

                                }

                                break;

                        }

                case REG_MULTI_SZ:

                        {

                                dwDataSize = MAX_VALUE_NAME;

                            TCHAR szData[MAX_VALUE_NAME];

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

                                {

                                     _sok->write(TwoInt(QString::fromWCharArray(szData).size()).toAscii().data());

                                      _sok->write(QString::fromWCharArray(szData).toAscii().data());

                                }

                                break;

                        }

                case 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