тися про можливість паралельного використання пристрою іншим додатком і т.д.
Рисунок 2.1 - UML-діаграма бібліотеки класів BPNeuralNetwork
Тому в останніх версіях операційної системи Windows була запропонована альтернативна модель введення, названа моделлю прямого введення, яка спрощує розробку додатків, що використовують нестандартні пристрої введення [14].
Модель прямого введення відрізняється від оригінальної моделі введення Windows. У звичайній моделі додаток отримує пристрій - незалежний введення у формі повідомлень (таких як WM_CHAR), які надсилаються вікнам додатки. У моделі прямого введення додаток повинен зареєструвати пристрої, від яких воно хоче отримувати введення. Далі додаток отримує користувача введення через повідомлення WM_INPUT. Підтримується два способи передачі даних - стандартний і буферізірованний; для інтерпретації введених даних додатку потрібно отримати інформацію про природу пристрої введення, що можна зробити за допомогою функції GetRawInputDeviceInfo.
В увазі ряду переваг нової моделі прямого введення - простоти реалізації та ефективності - саме вона була використана для реалізації клавіатурного перехоплювача.
2.2.4 Система управління базами даних SQLite
SQLite - легковага вбудовується реляційна база даних. Вона не використовує парадигму клієнт-сервер, тобто движок SQLite не є окремо працюючим процесом, з яким взаємодіє програма, а надає бібліотеку, з якою програма компонується і движок стає складовою частиною програми. Таким чином, в якості протоколу обміну використовуються виклики функцій (API) бібліотеки SQLite. Такий підхід зменшує накладні витрати, час відгуку і спрощує програму. SQLite зберігає всю базу даних (включаючи визначення, таблиці, індекси і дані) в єдиному стандартному файлі на тому комп'ютері, на якому виповнюється програма. Простота реалізації досягається за рахунок того, що перед початком виконання транзакції записи весь файл, що зберігає базу даних, блокується; ACID-функції досягаються в тому числі за рахунок створення файлу журналу.
База даних SQLite була використана при розробці програми для організації тривалого зберігання інформації про характеристики введення тексту користувачами, структурі нейронної мережі, її вагах та іншої інформації. Опис структури бази даних буде розглянуто в наступних розділах.
Перевагу SQLite перед іншими системами управління базами даних обумовлено такими факторами, як простота використання, наявність драйверів для SQLite в Qt за замовчуванням. Крім того, двигун SQLite і інтерфейс до неї реалізовані в одній бібліотеці, що збільшує швидкість виконання запитів. Такий сервер часто називають вбудованим. Вбудований сервер є у інших СУБД, наприклад, у MySQL, проте його використання вимагає ліцензійних відрахувань.
2.3 Опис бази даних
У процесі розробки програми, що відповідає вимогам, переліченим раніше, були створено базу даних, основним змістом якої є 9 таблиць, призначених для зберігання різноманітної інформації, необхідної для коректної роботи програми.
При першому запуску програми більша частина таблиць не містить даних, при цьому вміст деяких таблиць не підлягає оновленню в процесі роботи з додатком; такі та...