Разработка программы для сбора сведений о системе
Использование в программах, написанных на языке C, Windows application programming interfaces. Роль центрального процессора. Архитектура Фон Неймана. Оперативная память. Графическая плата. Создание интерфейса программы. Разработка машинного кода.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 15.05.2014 |
Размер файла | 101,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Теоритическая часть
1.1 Windows API
Windows API был изначально спроектирован для использования в программах, написанных на языке C (или C++). Работа через Windows API - это наиболее близкий к системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model.
Windows API (application programming interfaces) - общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows и Windows NT корпорации «Майкрософт». Является самым прямым способом взаимодействия приложений с Windows. Для создания программ, использующих Windows API, «Майкрософт» выпускает SDK, который называется Platform SDK и содержит документацию, набор библиотек, утилит и других инструментальных средств.
С каждым выпуском новой операционной системы обновляется версия Windows API. Ниже перечислены версии:
Win16 - первая версия Windows API для 16-разрядных версий Windows. Изначально назывался просто Windows API, затем стал называться Win16 для отличения от Win32.
Win32s - подмножество Win32, устанавливаемое на семейство 16-разрядных систем Windows 3.x и реализующее ограниченный набор функций Win32 API для этих систем.
Win32 - 32-разрядный API для современных версий Windows. Самая популярная ныне версия. Базовые функции этого API реализованы в DLL kernel32.dll и advapi32.dll; базовые модули GUI - в user32.dll и gdi32.dll. Win32 появился вместе с Windows NT и затем был перенесён (в несколько ограниченном виде) в системы серии Windows 9x. В современных версиях Windows, происходящих от Windows NT, работу Win32 GUI обеспечивают два модуля: csrss.exe (Client/Server Runtime Subsystem), работающий в пользовательском режиме, и win32k.sys в режиме ядра. Работу же системных Win32 API обеспечивает ядро - ntoskrnl.exe
Win64 - 64-разрядная версия Win32, содержащая дополнительные функции для использования на 64-разрядных компьютерах. Win64 API можно найти только в 64-разрядных версиях Windows XP и Windows Server 2003.
1.2 Процессор
Центральный процессор - процессор машинных инструкций, часть аппаратного обеспечения компьютера или программируемого логического контроллера, отвечающая за выполнение арифметических операций, заданных программами операционной системы и координирующий работу всех устройств компьютера.
Современные ЦПУ, выполняемые в виде отдельных микросхем (чипов), реализующих все особенности, присущие данного рода устройствам, называют микропроцессорами. С середины 1980-х последние практически вытеснили прочие виды ЦПУ, вследствие чего термин стал всё чаще и чаще восприниматься как обыкновенный синоним слова «микропроцессор». Тем не менее, это не так: центральные процессорные устройства некоторых суперкомпьютеров даже сегодня представляют собой сложные комплексы больших (БИС) и сверхбольших (СБИС) интегральных схем.
1.2.1 Архитектура Фон Неймана
Большинство современных процессоров для персональных компьютеров в общем основаны на той или иной версии циклического процесса последовательной обработки информации, изобретённого Джоном фон Нейманом.
Д. фон Нейман придумал схему постройки компьютера в 1946 году.
Важнейшие этапы этого процесса приведены ниже. В различных архитектурах и для различных команд могут потребоваться дополнительные этапы. Например, для арифметических команд могут потребоваться дополнительные обращения к памяти, во время которых производится считывание операндов и запись результатов. Отличительной особенностью архитектуры фон Неймана является то, что инструкции и данные хранятся в одной и той же памяти.
Этапы цикла выполнения:
· Процессор выставляет число, хранящееся в регистре счётчика команд, на шину адреса, и отдаёт памяти команду чтения;
· Выставленное число является для памяти адресом; память, получив адрес и команду чтения, выставляет содержимое, хранящееся по этому адресу, на шину данных, и сообщает о готовности;
· Процессор получает число с шины данных, интерпретирует его как команду (машинную инструкцию) из своей системы команд и исполняет её;
· Если последняя команда не является командой перехода, процессор увеличивает на единицу (в предположении, что длина каждой команды равна единице) число, хранящееся в счётчике команд; в результате там образуется адрес следующей команды;
· Снова выполняется п. 1.
Данный цикл выполняется неизменно, и именно он называется процессом (откуда и произошло название устройства).
Во время процесса процессор считывает последовательность команд, содержащихся в памяти, и исполняет их. Такая последовательность команд называется программой и представляет алгоритм полезной работы процессора. Очерёдность считывания команд изменяется в случае, если процессор считывает команду перехода - тогда адрес следующей команды может оказаться другим. Другим примером изменения процесса может служить случай получения команды останова или переключение в режим обработки аппаратного прерывания.
Команды центрального процессора являются самым нижним уровнем управления компьютером, поэтому выполнение каждой команды неизбежно и безусловно. Не производится никакой проверки на допустимость выполняемых действий, в частности, не проверяется возможная потеря ценных данных. Чтобы компьютер выполнял только допустимые действия, команды должны быть соответствующим образом организованы в виде необходимой программы.
Скорость перехода от одного этапа цикла к другому определяется тактовым генератором. Тактовый генератор вырабатывает импульсы, служащие ритмом для центрального процессора. Частота тактовых импульсов называется тактовой частотой.
1.2.2 Конвейерная архитектура
Конвейерная архитектура была введена в центральный процессор с целью повышения быстродействия. Обычно для выполнения каждой команды требуется осуществить некоторое количество однотипных операций, например: выборка команды из ОЗУ, дешифрация команды, адресация операнда в ОЗУ, выборка операнда из ОЗУ, выполнение команды, запись результата в ОЗУ. Каждую из этих операций сопоставляют одной ступени конвейера. Например, конвейер микропроцессора с архитектурой MIPS-I содержит четыре стадии:
· получение и декодирование инструкции (Fetch)
· выполнение арифметических операций (Arithmetic Operation)
· адресация и выборка операнда из ОЗУ (Memory access)
· сохранение результата операции (Store)
После освобождения k-й ступени конвейера она сразу приступает к работе над следующей командой. Если предположить, что каждая ступень конвейера тратит единицу времени на свою работу, то выполнение команды на конвейере длиной в n ступеней займёт n единиц времени, однако в самом оптимистичном случае результат выполнения каждой следующей команды будет получаться через каждую единицу времени.
Факторы, снижающие эффективность конвейера:
· простой конвейера, когда некоторые ступени не используются (напр., адресация и выборка операнда из ОЗУ не нужны, если команда работает с регистрами);
· ожидание: если следующая команда использует результат предыдущей, то последняя не может начать выполняться до выполнения первой (это преодолевается при использовании внеочередного выполнения команд, out-of-order execution);
· очистка конвейера при попадании в него команды перехода (эту проблему удаётся сгладить, используя предсказание переходов).
Некоторые современные процессоры имеют более 30 ступеней в конвейере, что увеличивает производительность процессора, однако приводит к большому времени простоя (например, в случае ошибки в предсказании условного перехода.)
1.3 Оперативная память
Оперативная память, - это часть системы памяти ЭВМ, в которую процессор может обратиться за одну операцию. Предназначена для временного хранения данных и команд, необходимых процессору для выполнения им операций. Оперативная память передаёт процессору команды и данные непосредственно, либо через кэш-память. Каждая ячейка оперативной памяти имеет свой индивидуальный адрес.
В современных вычислительных устройствах, оперативная память выполнена по технологии динамической памяти с произвольным доступом (англ. dynamic random access memory, DRAM). Понятие памяти с произвольным доступом предполагает, что текущее обращение к памяти не учитывает порядок предыдущих операций и расположения данных в ней. ОЗУ может изготавливаться как отдельный блок, или входить в конструкцию однокристальной ЭВМ или микроконтроллера.
Ячейка памяти - часть запоминающего устройства ЭВМ для хранения 1 машинного слова или его части Общее число ячеек памяти всех запоминающих устройств определяет ёмкость памяти ЭВМ.
В область, называемую основной областью памяти, загружается таблица векторов прерываний, различные данные из BIOS, а также могут загружаться некоторые 16-разрядные программы DOS. Основная область памяти занимает 640 Кбайт.
Верхняя область памяти (англ. UMA, upper memory area) занимает 384 Кбайт и служит для размещения информации об аппаратной части компьютера. Область условно делится на три области по 128 Кбайт. Первая область служит для видеопамяти. Во вторую область загружаются программы BIOS. Третья область используется системной BIOS, но не полностью (свободно около 64Кб). Оставшаяся свободная память из верхней области с помощью специального драйвера могла отдаваться для нужд ОС и называлась расширенная память. EMS использовалась преимущественно в компьютерах с размером оперативной памяти менее 1 Мбайт и практически не используется современными компьютерами.
В дополнительную область памяти загружаются все оставшиеся приложения, работающие на компьютере. Объём этой области зависит от объёма оперативной памяти, установленной на компьютере. XMS начинается с памяти свыше 1Мб.
Область верхней памяти находится в первом мегабайте дополнительной памяти (XMS) и объём её равен 64Кб за вычитанием 16 байт. Её появление было обусловлено ошибкой в процессоре 80286: не отключалась 21-я линия адреса (всего 24 в этом процессоре), в результате процессор обращался по адресу FFFF:FFFF, а это уже второй мегабайт памяти.
1.4 Графическая плата
Графическая плата (известна также как графическая карта, видеокарта, видеоадаптер) (англ. videocard) - устройство, преобразующее изображение, находящееся в памяти компьютера, в видеосигнал для монитора.
Обычно видеокарта является платой расширения и вставляется в специальный разъём (ISA, VLB, PCI, AGP, PCI-Express) для видеокарт на материнской плате, но бывает и встроенной, иначе говоря, интегрированной.
Современные видеокарты не ограничиваются простым выводом изображения, они имеют встроенный графический микропроцессор, который может производить дополнительную обработку, разгружая от этих задач центральный процессор компьютера.
Современная графическая плата состоит из следующих частей:
· графический процессор (Graphics processing unit - графическое процессорное устройство) - занимается расчётами выводимого изображения, освобождая от этой обязанности центральный процессор, производит расчёты для обработки команд трёхмерной графики. Является основой графической платы, именно от него зависят быстродействие и возможности всего устройства. Современные графические процессоры по сложности мало чем уступают центральному процессору компьютера, и зачастую превосходят его по числу транзисторов. Архитектура современного GPU обычно предполагает наличие нескольких блоков обработки информации, а именно: блок обработки 2D-графики, блок обработки 3D-графики, в свою очередь, обычно разделяющийся на геометрическое ядро (плюс кэш вершин) и блок растеризации (плюс кэш текстур) и др.
· видеоконтроллер - отвечает за формирование изображения в видеопамяти, даёт команды RAMDAC на формирование сигналов развёртки для монитора и осуществляет обработку запросов центрального процессора. Кроме этого, обычно присутствуют контроллер внешней шины данных (например, PCI или AGP), контроллер внутренней шины данных и контроллер видеопамяти. Ширина внутренней шины и шины видеопамяти обычно больше, чем внешней (64, 128 или 256 разрядов против 16 или 32), во многие видеоконтроллеры встраивается ещё и RAMDAC. Современные графические адаптеры (ATI, nVidia) обычно имеют не менее двух видеоконтроллеров, работающих независимо друг от друга и управляющих одновременно одним или несколькими дисплеями каждый.
· видеопамять - выполняет роль кадрового буфера, в котором хранится изображение, генерируемое и постоянно изменяемое графическим процессором и выводимое на экран монитора (или нескольких мониторов). В видеопамяти хранятся также промежуточные невидимые на экране элементы изображения и другие данные. Видеопамять бывает нескольких типов, различающихся по скорости доступа и рабочей частоте. Современные видеокарты комплектуются памятью типа DDR, DDR2 или GDDR3. Следует также иметь в виду, что помимо видеопамяти, находящейся на видеокарте, современные графические процессоры обычно используют в своей работе часть общей системной памяти компьютера, прямой доступ к которой организуется драйвером видеоадаптера через шину AGP или PCIE.
· цифро-аналоговый преобразователь (ЦАП, RAMDAC - Random Access Memory Digital-to-Analog Converter) - служит для преобразования изображения, формируемого видеоконтроллером, в уровни интенсивности цвета, подаваемые на аналоговый монитор. Возможный диапазон цветности изображения определяется только параметрами RAMDAC. Чаще всего RAMDAC имеет четыре основных блока - три цифроаналоговых преобразователя, по одному на каждый цветовой канал (красный, зелёный, синий, RGB), и SRAM для хранения данных о гамма - коррекции. Большинство ЦАП имеют разрядность 8 бит на канал - получается по 256 уровней яркости на каждый основной цвет, что в сумме дает 16,7 млн. цветов (а за счёт гамма-коррекции есть возможность отображать исходные 16,7 млн. цветов в гораздо большее цветовое пространство). Некоторые RAMDAC имеют разрядность по каждому каналу 10 бит (1024 уровня яркости), что позволяет сразу отображать более 1 млрд. цветов, но эта возможность практически не используется. Для поддержки второго монитора часто устанавливают второй ЦАП. Стоит отметить, что мониторы и видеопроекторы, подключаемые к цифровому DVI выходу видеокарты, для преобразования потока цифровых данных используют собственные цифроаналоговые преобразователи и от характеристик ЦАП видеокарты не зависят.
· видео-ПЗУ (Video ROM) - постоянное запоминающее устройство, в которое записаны видео-BIOS, экранные шрифты, служебные таблицы и т.п. ПЗУ не используется видеоконтроллером напрямую - к нему обращается только центральный процессор. Хранящийся в ПЗУ видео-BIOS обеспечивает инициализацию и работу видеокарты до загрузки основной операционной системы, а также содержит системные данные, которые могут читаться и интерпретироваться видеодрайвером в процессе работы (в зависимости от применяемого метода разделения ответственности между драйвером и BIOS). На многих современных картах устанавливаются электрически перепрограммируемые ПЗУ (EEРROM, Flash ROM), допускающие перезапись видео-BIOS самим пользователем при помощи специальной программы.
· система охлаждения - предназначена для сохранения температурного режима видеопроцессора и видеопамяти в допустимых пределах.
Правильная и полнофункциональная работа современного графического адаптера обеспечивается с помощью видеодрайвера - специального программного обеспечения, поставляемого производителем видеокарты и загружаемого в процессе запуска операционной системы. Видеодрайвер выполняет функции интерфейса между системой с запущенными в ней приложениями и видеоадаптером. Так же как и видео-BIOS, видеодрайвер организует и программно контролирует работу всех частей видеоадаптера через специальные регистры управления, доступ к которым происходит через соответствующую шину.
1.5 BIOS
BIOS - программа, находящаяся в ПЗУ (постоянном запоминающем устройстве) персонального компьютера и исполняющаяся при включении питания. Главная функция BIOS - подготовить компьютер к тому, чтобы основное программное обеспечение (в большинстве случаев это операционная система), записанное на различных носителях (жёсткий диск, дискета или компакт-диск) либо доступное через сеть, могло стартовать и получить контроль над компьютером.
Обозначение подобного базового ПО термином «BIOS» присуще для персональных компьютеров на базе процессоров с архитектурой x86. Для компьютеров на базе процессоров других типов для обозначения ПО, выполняющего подобные функции, используются другие термины: например базовое ПО машин с процессором архитектуры SPARC называется PROM.
BIOS выполняет самотестирование устройств (англ. POST - Power-On Self Test), а затем ищет загрузчик операционной системы (англ. Boot Loader) на доступных носителях информации. Если загрузчик не найден, BIOS выдаёт сообщение об ошибке. Многие старые персональные компьютеры, которые не имели полноценной операционной системы, либо её загрузка не была необходимой пользователю, вызывали встроенный интерпретатор языка Бейсик.
Также BIOS содержит минимальный набор сервисных функций (например, для вывода сообщений на экран или приёма символов с клавиатуры), что и обусловливает расшифровку её названия: Basic Input-Output System - Базовая система ввода-вывода.
В современных персональных компьютерах BIOS также предоставляет интерфейс для низкоуровневого конфигурирования компонентов системы, а в некоторых реализациях - позволяет производить загрузку операционной системы через интерфейсы, изначально для этого не предназначенные, в том числе USB и IEEE 1394. Также возможна загрузка по сети (применяется, например, в т.н. «тонких клиентах»).
1.6 Windows
1.6.1 Компоненты пользовательского режима
Подсистема пользовательского интерфейса в Windows NT реализует оконный интерфейс, подобный интерфейсу предыдущих версий Windows. Двумя типами объектов этой подсистемы, отсутствовавшими в 16-битных версиях Windows и в Windows 9x, являются оконные станции и рабочие столы. Оконная станция соответствует одному сеансу пользователя Windows NT - например, при подключении через службу удалённого рабочего стола создаётся новая оконная станция. Каждый запущенный процесс принадлежит к одной из оконных станций; службы, кроме помеченных как способные взаимодействовать с рабочим столом, запускаются в отдельных, невидимых оконных станциях.
Каждая оконная станция имеет собственный буфер обмена, набор глобальных атомов (используемых для операций DDE), и набор рабочих столов. Рабочий стол является контекстом всех глобальных операций подсистемы пользовательского интерфейса, таких как установка хуков и широковещательная рассылка сообщений. Каждый запущенный поток принадлежит к одному из рабочих столов - тому, где расположены обслуживаемые им окна; в частности, один поток не может создать несколько окон, принадлежащих к различным рабочим столам. Один из рабочих столов может быть активным (видимым пользователю и способным реагировать на его действия), остальные рабочие столы спрятаны. Возможность создать для одного сеанса работы несколько рабочих столов и переключаться между ними до настоящего времени не предоставлялась стандартными средствами пользовательского интерфейса Windows, хотя существуют сторонние программы, дающие доступ к этой функциональности.
Оконными станциями и рабочими столами исчерпываются объекты подсистемы пользовательского интерфейса Windows NT, которым могут быть назначены права доступа. Оставшиеся типы объектов - окна и меню - предоставляют полный доступ любому процессу, который находится с ними в одной оконной станции. Поэтому службы Windows NT по умолчанию запускаются в отдельных оконных станциях: они работают с повышенными привилегиями, и возможность процессов пользователя неограниченно манипулировать окнами служб могла бы привести к сбоям и / или проблемам безопасности.
1.6.2 NATIVE API
Для прикладных программ системой Windows NT предоставляется несколько наборов API. Самый основной из них - так называемый «родной» API (NT Native API), реализованный в динамически подключаемой библиотеке ntdll и состоящий из двух частей: системные вызовы ядра NT (функции с префиксами Nt и Zw, передающие выполнение функциям ядра ntoskrnl с теми же названиями) и функции, реализованные в пользовательском режиме (с префиксом Rtl). Часть функций второй группы используют внутри себя системные вызовы; остальные целиком состоят из непривилегированного кода, и могут вызываться не только из кода пользовательского режима, но и из драйверов. Кроме функций Native API, в ntdll также включены функции стандартной библиотеки языка Си.
Официальная документация на Native API весьма скудна, но сообществам энтузиастов удалось методом проб и ошибок собрать достаточно обширные сведения об этом интерфейсе. В частности, в феврале 2000 г. опубликована книга Гэри Неббета «Справочник по базовым функциям API Windows NT/2000» (ISBN 1-57870-199-6); в 2002 г. она была переведена на русский язык (ISBN 5-8459-0238-X). Источником информации о Native API может служить Windows DDK, где описаны некоторые функции ядра, доступные посредством Native API, а также изучение кода Windows (обратный инжиниринг) - посредством дизассемблирования, либо используя исходные тексты Windows 2000, ставшие доступными в результате утечки, либо используя исходные тексты Windows 2003, доступные в рамках программы Windows Research Kernel.
Программы, выполняющиеся до загрузки подсистем, обеспечивающих работу остальных API ОС Windows NT, ограничены использованием Native API. Например, программа autochk, проверяющая диски при загрузке ОС после некорректного завершения работы, использует только Native API.
1.6.3 WIN32 API
Чаще всего прикладными программами для Windows NT используется Win32 API - интерфейс, созданный на основе API ОС Windows 3.1, и позволяющий перекомпилировать существующие программы для 16-битных версий Windows с минимальными изменениями исходного кода. Совместимость Win32 API и 16-битного Windows API настолько велика, что 32-битные и 16-битные приложения могут свободно обмениваться сообщениями, работать с окнами друг друга и т.д. Кроме поддержки функций существовавшего Windows API, в Win32 API был также добавлен ряд новых возможностей, в том числе поддержка консольных программ, многопоточности, и объектов синхронизации, таких как мутексы и семафоры. Документация на Win32 API входит в состав Microsoft Platform SDK (англ.) и доступна на веб-сайте.
Библиотеки поддержки Win32 API в основном названы так же, как системные библиотеки Windows 3.x, с добавлением суффикса 32: это библиотеки kernel32, advapi32, gdi32, user32, comctl32, comdlg32, shell32 и ряд других. Функции Win32 API могут либо самостоятельно реализовывать требуемую функциональность в пользовательском режиме, либо вызывать описанные выше функции Native API, либо обращаться к подсистеме csrss посредством механизма LPC (англ.), либо осуществлять системный вызов в библиотеку win32k, реализующую необходимую для Win32 API поддержку в режиме ядра. Четыре перечисленных варианта могут также комбинироваться в любом сочетании: например, функция Win32 API WriteFile обращается к функции Native API NtWriteFile для записи в дисковый файл, и вызывает соответствующую функцию csrss для вывода в консоль.
Поддержка Win32 API включена в семейство ОС Windows 9x; кроме того, она может быть добавлена в Windows 3.1x установкой пакета Win32s. Для облегчения переноса существующих Windows-приложений, использующих для представления строк MBCS-кодировки, все функции Win32 API, принимающие параметрами строки, были созданы в двух версиях: функции с суффиксом A (ANSI) принимают MBCS-строки, а функции с суффиксом W (wide) принимают строки в кодировке Unicode. В Win32s и Windows 9x поддерживаются только A-функции, тогда как в Windows NT, где все строки внутри ОС хранятся исключительно в Юникоде, каждая A-фунция просто преобразует свои строковые параметры в Юникод и вызывает W-версию той же функции. Когда имя функции в исходном тексте программы указано без суффикса, использование A - либо W-версии этой функции определяется опциями компиляции. При этом важно отметить, что большинство новых функций, появившихся в Windows 2000 или более поздних ОС семейства Windows NT, существуют только в Unicode-версии, потому что задача обеспечения совместимости со старыми программами и с ОС Windows 9x уже не стоит так остро, как раньше.
2. Практическая часть
2.1 Создание интерфейса
Для разработки программы для сбора информации о компьютере используем среду разработки Borland Delphi версии 7 и операционную систему Windows XP SP2. В Delphi создаем новое приложение WIN-32 и размешаем на нем первый основной компонент, для переключения закладок нашей программы, Page Control. На нем создаем две закладки.
Первую назовем «Информация о компьютере». Она будет отображать основные сведения: имя компьютера, имя пользователя, каталог Windows, имя операционной системы, дату BIOS, данные о оперативной и виртуальной памяти, данные о модели видеокарты, разрешения экрана, глубины цвета рабочего стола. А также отобразим тип и частоту процессора. Всю эту информацию обведем в компонент GroupBox. Главное окно вкладки изображено на рисунке 2.1.1.
Рисунок 2.1.1
Вторую вкладку назовем «Информация о запущенных процессах Windows». В ней мы собираемся, отобразить все запущенные процессы операционной системы, более того мы сможем увидеть полный путь начиная от корневого каталога, и заканчивая именем запущенного файла. Информацию выводим в компонент Memo, в установленном режиме только для чтения. Для этого свойству компонента ReadOnly необходимо присвоить значение True. Главное окно вкладки «Информация о запущенных процессах Windows» изображено на рисунке 2.1.2 представленном ниже.
Рисунок 2.1.2
Как видно на рисунке 2.1.1 на панели множество пар компонентов Label, имеющие в своей паре описание отображаемой информации, и Label которой будет присваиваться значение отображаемой информации.
2.2 Разработка программного кода
Для получения информации мы используем стандартные средства интерфейса Windows API. Сначала мы описываем все процедуры и функции, а после при возникновении события формы Form. Create мы вызываем наши процедуры.
Код для получения информации о видеоадаптере приведен в листинге 2.2.1.
form1.memo1. Clear;
lpDisplayDevice.cb:= sizeof(lpDisplayDevice);
dwFlags:= 0;
cc:= 0;
while EnumDisplayDevices (nil, cc, lpDisplayDevice, dwFlags) do
begin
Inc(cc);
form1.memo1.lines.add (lpDisplayDevice. DeviceString);
end;
begin
tmp:= memo2. Lines;
GetProcessList(tmp);
Листинг 2.2.1
Информация о дате BIOS получается при помощи процедуры приведенном в листинге 2.2.2
procedure TForm1.BIOSInfo (OS: string);
var p: pointer;
s: string[255];
begin
if OS='NT' then begin with TRegistry. Create do
try RootKey:= HKEY_LOCAL_MACHINE;
if OpenKeyReadOnly
('HARDWARE\DESCRIPTION\System')
then BIS. Caption:=
ReadString('SystemBiosDate')
finally Free;
end;
end
else try
s[0]:= #8;
p:= Pointer($0FFFF5);
Move (p^, s[1], 8);
BIS. Caption:=
copy (s, 1,2) + '/' + copy (s, 4,2) + '/' +copy (s, 7,2);
except BIS. Caption:= 'XX.XX.XXXX';
end;
end;
листинг 2.2.2
В листинге 2.2.3 приведен код получения основной информации о компьютере: имени компьютера, имени пользователя, типе процессора.
procedure TForm1. InfopC;
var Size: cardinal;
PRes: PChar;
BRes: boolean;
lpSystemInfo: TSystemInfo;
begin
Size:= MAX_COMPUTERNAME_LENGTH + 1;
PRes:= StrAlloc(Size);
BRes:= GetComputerName (PRes, Size);
if BRes then NamePC. Caption:= StrPas(PRes);
Size:= MAX_COMPUTERNAME_LENGTH + 1;
PRes:= StrAlloc(Size);
BRes:= GetUserName (PRes, Size);
if BRes then NameUser. Caption:= StrPas(PRes);
GetSystemInfo(lpSystemInfo);
NamePROC. Caption:= 'класса x' + IntToStr
(lpSystemInfo.dwProcessorType);
end;
листинг 2.2.3
программа процессор сбор система
Вся получаемая информация обновляется с помощью компонента Timer с временем в 1 сек. После полученные значения присваиваются Label'ам и выводятся на форму.
Заключение
В настоящее время компьютеры внедряются во все отрасли человеческой деятельности. Они помогают автоматизировать процессы, на выполнение которых требуется много времени.
Данный курсовой проект является актуальным и отвечает предъявленным к нему требованиям. Была разработана и написана, на языке программирования высокого уровня Borland Delphi 7 программа, позволяющая осуществить просмотр сведений о ресурсах системы персонального компьютера.
Интерфейс разработанной программы совместим с Windows-интерфейсом благодаря тому, что программа, в которой разрабатывалась курсовая работа, - Delphi 7 - предоставляет такую возможность и поддерживает именно Windows - интерфейс. Все пункты курсового задания были выполнены, разработанное программное средство выполняет поставленную перед ним задачу.
Конечно, разработанная программа не планирует конкурировать с программами, которые уже довольно давно облегчили нам задачу выяснения необходимых параметров компьютера, не затрачивая на это лишнего времени, пример такой программы прекрасно демонстрирует SiSoftware Sandra.
Усовершенствование подобных программ открывает перед нами множество возможностей, с каждым днём компьютерная отрасль продолжает развиваться, и любое сведение о системе не останется незамеченным.
Размещено на Allbest.ru
Подобные документы
Создание программы для хранения и обработки данных о съеме/сдаче жилья. Написание программы на языке C++ с использованием библиотеки Qt; использование исходного кода для создания приложения под Windows, Linux, Mac OS X без дополнительных изменений кода.
курсовая работа [60,4 K], добавлен 07.03.2013Архитектура ввода/вывода Windows NT. Внутренняя организация шины USB. Сущностная характеристика драйверной модели WDM. Точки входа разрабатываемого драйвера, размещение кода в памяти, установка драйвера в системе. Реализация кода драйвера на языке C.
курсовая работа [1,2 M], добавлен 27.09.2014Графическая схема алгоритма выполнения программы определения запасов сырья. Решение задачи с помощью программы MS Excel. Разработка макроса для построения диаграммы. Использование интерфейса программы для работы с таблицей. Разработка базы данных.
курсовая работа [1,2 M], добавлен 24.04.2014Программный комплекс для разработки программы транслирующей программу с языка Pascal на язык С++. Построение логической и арифметической модели решения. Разработка компилятора для программы. Методы отладки программы и создание для нее документации.
курсовая работа [742,6 K], добавлен 03.07.2011Создание программы "MP3 Player", воспроизводящей аудио файлы формата MP3 для работы в операционной системе Windows с использованием языка программирования Delphi. Разработка интерфейса, алгоритма и документации к разработанному программному продукту.
курсовая работа [625,0 K], добавлен 18.07.2012Разработка программы на языке Ассемблер для определения типа центрального процессора и его производительности. Основные этапы определения любого существующего Intel-совместимого процессора. Тактовая частота процессора, алгоритм и листинг программы.
курсовая работа [47,6 K], добавлен 26.07.2014Назначение и скорость работы видеоадаптера. Программы для работы с электронными таблицами. Основные черты операционных систем. Назначение расширения в имени файла. Основные компоненты пакета Microsoft Office 2000 (XP). Понятие рабочего листа Excel.
контрольная работа [219,8 K], добавлен 02.02.2010Использование языка программирования Delphi для записи программ, представляющих собой последовательность инструкций. Классы и директивы в объектно-ориентированном программировании. Разработка демонстрационной программы. Процесс настройки Windows XP.
дипломная работа [917,4 K], добавлен 15.01.2014Техника создания графики при помощи API функций, экспортируемых библиотекой GDI32.DLL. Разработка на языке программирования С++ в среде программирования Microsoft Visual C++ программы для отображения часов реального времени в цифровом и аналоговом виде.
курсовая работа [2,8 M], добавлен 27.01.2010Разработка программы для рисования различных правильных многоугольников с помощью объектно-ориентированного языка программирования. Использование для разработки среды C++ Builder 6 и библиотеки VCL. Разработка интерфейса приложения и алгоритма его работы.
курсовая работа [616,4 K], добавлен 18.10.2010