Автор: Пользователь скрыл имя, 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
Класс QTcpSocket предоставляет интерфейс для TCP.
Перед передачей
данных должно быть установлено TCP-соединение
с удаленным узлом и портом.
Как только связь была установлена,
IP-адрес и порт соединения доступны
через QTcpSocket::peerAddress(
QTcpSocket работает асинхронно
и посылает сигналы, сообщающие об изменении
статуса и ошибках. Что зависит от цикла
событий для обнаружения поступающих
данных и автоматического сброса отправляемых.
Записывать данные в сокет можно используя QTcpSocket::write(), а читать данные используя QTcpSocket::read(). QTcpSocket
Так как QTcpSocket унаследован от QIODevice, можно использовать
его с QTextStream и QDataStream. При чтении из QTcpSocket нужно удостовериться,
что доступно достаточно данных, это можно
сделать с помощью вызова QTcpSocket::
Если нам нужно
обработать входящие TCP-соединения (например,
в серверном приложении), используем
класс QTcpServer. Вызвав QTcpServer::listen(), установите сервер,
и соединитесь с сигналом QTcpServer::
Хотя большинство
его функций работает асинхронно,
возможно синхронное использование QTcpSocket (в блокирующем режиме).
Чтобы установить блокирующий режим вызывается
функции waitFor...() QTcpSocket'а; они приостанавливают
выполнение потока до тех пор, пока не
будет получен сигнал. Например, после
вызова неблокирующей функции QTcpSocket::
Использование синхронных сокетов часто приводит к более простому коду. Главное неудобство waitFor...() подхода состоит в том, что события не будут обрабатываться, пока поток блокируется функцией waitFor...(). Если использовать в GUI потоке, то это может "заморозить" пользовательский интерфейс приложения.
Исходными данными в данной задаче являются следующие значения:
Данные о выбранной ветке
Данные отправляются серверу во время щелчка по ветке дерева отображающие реестр Windows.
Формат пакета, передаваемого от клиента к серверу - строка, которая состоит из 6 последовательностей.
Первая последовательность – длина выбранной ветки (2 разряда).
Вторая последовательность – строка, состоящая из имени выбранной ветки.
Третья последовательность – длина раздела реестра (2 разряда).
Четвертая последовательность – строка, состоящая из наименования раздела реестра ("HKEY_CLASSES_ROOT", "HKEY_CURRENT_CONFIG", "HKEY_CURRENT_USER", "HKEY_LOCAL_MACHINE", "HKEY_USERS").
Пятая последовательность – длина полного пути выбранной ветки (2 разряда).
Шестая последовательность – строка, состоящая из полного пути выбранной ветки без раздела реестра.
Форматы пакетов, передаваемого от сервера к клиенту.
Первая последовательность – строка с текстом “SER” (3 байта)
Вторая последовательность – длина строки имени хоста (2 разряда).
Третья последовательность – строка, состоящая из имени хоста.
Первая последовательность – строка с текстом “SUB” (3 байта)
Вторая последовательность – длина строки выбранной ветки пользователем (2 разряда).
Третья
последовательность – строка, состоящая
из имени выбранной ветки
Четвертая последовательность – длина строки количества дочерних веток.
Пятая последовательность – строка, состоящая из значения дочерних веток.
Шестая последовательность – длина имени дочерней ветки (2 разряда).
Седьмая последовательность – строка, состоящая из имени дочерней ветки.
Шестая и седьмая последовательность повторяется столько раз сколько значений дочерних веток.
Первая последовательность – строка с текстом “VAL” (3 байта)
Вторая последовательность – длина строки выбранной ветки пользователем (2 разряда).
Третья
последовательность – строка, состоящая
из имени выбранной ветки
Четвертая последовательность – длина строки количества значении ветки.
Пятая последовательность – строка, состоящая из количества значении ветки.
Шестая последовательность – длина строки значения ветки (2 разряда).
Седьмая последовательность – строка, состоящая из значения ветки.
Шестая и седьмая последовательность повторяется столько раз сколько значений ветки.
2.4.2.Описание методов приложения
Методы клиента
Методы класса MainWindows:
void setOrientation(ScreenOrientati
QString TwoInt(int i); //преобразование числа в 2 разрядное число
void MoveWidget(int i); // перемещение виджета (анимация)
private slots:
void on_pushButton_clicked(); //обработчик нажатия кнопки «Соединиться»
void onSokConnected(); //обработчик при подключения сокета
void onSokReadyRead(); //обработчик при получения данных
void on_toolButton_clicked(); //обработчик кнопки «Выход»
void ListEdit(); - редактирование списка в treeWidget.
void on_treeWidget_itemClicked(QTre
Переменные класса MainWindows:
private:
Ui::MainWindow *ui;
QTcpSocket *_sok; //сокет
quint16 _blockSize;//текущий размер блока данных
QString _name;//имя клиента
Методы Сервера:
Методы класса MainWindows:
QString TwoInt(int i); //преобразование числа в 2 разрядное число
void QueryKey(HKEY hKey, QTextEdit *TE, QTableWidget *TW, QTreeWidget *TrV, QTreeWidgetItem *item) //функция для получения дочерних веток и значений.
void QueryKey2(HKEY hKey) //функция для получения дочерних веток и значений и отправке клиенту.
private slots:
void on_pushButton_clicked(); //обработчик нажатия кнопки « Запустить Удаленный Просмотр»
void on_treeWidget_itemClicked(QTre
void newConnection(); обработчик при создании сервера
void onSokReadyRead(); ////обработчик при получения данных
Переменные класса MainWindows:
QTcpServer *server;
Информация о работе Разработка приложения для чтения локального и удаленного реестра Windows