Прототип к варианту 9 - Информация о системе
Использование программы Syslnfo
Список и связанная с ним надпись отображаются на экране только в режиме вывода системных цветов командой меню System > Col ors. При выделении любой строки в списке фон надписи окрашивается в выбранный системный цвет.
На форме присутствуют два текстовых поля. Когда фокус принадлежит верхнему полю, при нажатии любой клавиши в поле отображается ее имя. Если фокус ввода находится в нижнем поле, в нем создается и отображается квадратная каретка.
Надпись в правом нижнем углу формы используется в сочетании с таймером для вывода текущего состояния клавиш CapsLock, NumLock и ScrollLock.
Описание проекта
Проект Syslnfo состоит из трех файлов. В программе используется всего одна форма, SYSINFO.FRM. Файл SYSINFO.BAS представляет собой единственный модуль программы, в котором находятся объявления констант и функций. В программе также используется файл VBPGUTIL.BAS — набор вспомогательных функций общего назначения, прилагаемый к книге.
Проект Syslnfo был получен в результате переноса исходной 16-разрядной версии приложения Syslnfo из предыдущего издания этой книги. В версии программы для VB4 была сохранена совместимость с 16-разрядным Visual Basic 4.0. Это помогает продемонстрировать различия между двумя платформами.
Описание формы
В листинге 6.2 приведен заголовок файла SYSINFO.FRM, описывающий расположение элементов на форме. На рис. 6.4 показана форма Syslnfo на стадии конструирования (чтобы вам было проще разобраться с расположением элементов).
Таймер Timerl используется для обновления состояния клавиш в элементе LabelKeyState. Если в настоящее время вы отображаете состояние клавиш при помощи специального элемента, я настоятельно рекомендую удалить его и заменить программным кодом в проекте. Замена элемента несколькими простыми вызовами функций API экономит память и ресурсы, а также повышает быстродействие приложения — не говоря уже о сокращении числа элементов, которые приходится распространять с приложением.
При выборе команды меню System > Col ors список ListColor становится видимым и заполняется перечнем объектов Windows, с которыми связаны системные цвета. ;г,м
Когда фокус передается элементу KeyCheck, при нажатии любой клавиши ее имя отображается в текстовом поле. Для букв имя клавиши совпадает с введенным символом. Для управляющих и функциональных клавиш имя представляет собой описание клавиши.
В качестве цвета фона элемента LabelColor назначается системный цвет объекта, выделенного в списке ListColor.
При поступлении очередного события таймера в элементе LabelKeyState отображается обновленное состояние клавиш CapsLock, NumLock и ScrollLock.
Команды меню MenuGeneral предназначены для получения статистики о системе. Первая команда не реализована для Win32. Две другие команды выводят информацию о времени и используемом оборудовании.
Команды меню MenuSystem используются для определения цветов различных системных объектов, а также для просмотра других системных характеристик, включая информацию о стандартных размерах объектов, данных локального контекста и дополнительных системных параметров.
Программный код Syslnfo
Модуль SYSINFO.BAS (листинг 6.3) содержит объявления констант и глобальных переменных, используемых программой.
Листинг 6.3. SYSINFO.BAS
Константы API, используемые в этом приложений, можно найти в файле приложения на компакт-диске и в файле API32.TXT. Константы Winl6 (смешанные с остальными) определяются в файле API16.TXT. В этом приложении используются константы со следующими префиксами: GFSR_, WF_, VK_, COLOR., SM_, VER_, SPI_, SPIF_, EWX_, PROCESSOR, и LOCALE_. Значения этих констант изменились по сравнению с Winl6. В процессе переноса проекта проще всего удалить все старые константы и добавить новые в расчете на то, что компилятор Visual Basic найдет все необъявленные константы (не забудьте включить команду Option Explicit во все модули и формы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.