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

                                        itoa(dwData, szBuff, 10);

                                        strcat(szText, szBuff);

                                        strcat(szText, ")");

                                        newItem2->setText(szText);

                                }

                                break;

                        }

                case REG_QWORD:

                        {

 newItem3->setText("REG_QWORD");

                                dwDataSize = 8;

                                DWORD qwData[2];

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

                                {

                                        DWORD dwData = qwData[0];

                                        char szBuff[16];

                                        char szText[32];

                                        itoa(dwData, szBuff, 16);

                                        strcpy(szText, "0x");

                                        strcat(szText, szBuff);

                                        strcat(szText, " (");

                                        itoa(dwData, szBuff, 10);

                                        strcat(szText, szBuff);

                                        strcat(szText, ")");

                                        newItem2->setText(szText);

                                }

                                break;

                        }

                case REG_BINARY:

                        {

 newItem3->setText("REG_BINARY");

                                newItem2->setText("Неизвестный тип данных");

                        }

                }

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

        TW->setItem(i,1,newItem3);

                   TW->setItem(i,2,newItem2);

              }

          }

        }

    }

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

void MainWindow::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column)

{

    HKEY hTestKey;

    QTreeWidgetItem *it=item;

    QString str;

    QStringList st;

    st   <<"HKEY_CLASSES_ROOT"

         <<"HKEY_CURRENT_CONFIG"

         <<"HKEY_CURRENT_USER"

         <<"HKEY_LOCAL_MACHINE"

        <<"HKEY_USERS"<<QString::fromWCharArray(Buffer);

    while (!st.contains(it->text(0)))

    {

        str=it->text(0)+"\\\\"+str;

         it=it->parent();

    }

    if ((it->text(0))=="HKEY_CLASSES_ROOT") hTestKey=HKEY_CLASSES_ROOT;

    if ((it->text(0))=="HKEY_CURRENT_CONFIG") hTestKey=HKEY_CURRENT_CONFIG;

    if ((it->text(0))=="HKEY_CURRENT_USER") hTestKey=HKEY_CURRENT_USER;

    if ((it->text(0))=="HKEY_LOCAL_MACHINE") hTestKey=HKEY_LOCAL_MACHINE;

    if ((it->text(0))=="HKEY_USERS") hTestKey=HKEY_USERS;

 qDeleteAll(ui->treeWidget->currentItem()->takeChildren());

 ui->tableWidget->setRowCount(0);

if( RegOpenKeyEx(hTestKey,(WCHAR*)str.utf16()

                  ,

            0,

            KEY_READ,

            &hTestKey) == ERROR_SUCCESS

          )

       {

               QueryKey(hTestKey,ui->textEdit,ui->tableWidget,ui->treeWidget,item);

       } else

{

   //ОШИБКА

}

       RegCloseKey(hTestKey);

}

QString MainWindow::TwoInt(int i)

{

QString str=QString::number(i);

if (str.length()==1)

    str='0'+str;

return str;

}

void MainWindow::newConnection()

{

    _sok=server->nextPendingConnection();

connect(_sok, SIGNAL(readyRead()), this, SLOT(onSokReadyRead()));

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